ตามที่คำถามของฉันบอกว่า เป็นไปได้หรือไม่ที่จะบันทึกอักขระภาษาฮินดีลงในฐานข้อมูลโดยตรงโดยไม่ต้องเข้ารหัส ตัวอย่างเช่น ฉันมีคำนี้ ฉันพิมพ์ลงในฟิลด์ข้อความในหน้า jsp त५
ฉันต้องบันทึกชื่อในฐานข้อมูล mysql
เหตุผลที่ฉันถามสิ่งนี้คือฉันพยายามเข้ารหัสโดยใช้ UTF-8 และแม้แต่ในตารางฉันก็สร้างสิ่งนี้ขึ้นมา
CREATE TABLE `hindi` (
`data` varchar(200) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
แต่มันทำให้ฉัน त५
ซึ่งเมื่อฉันดึงข้อมูลกลับมาบนพื้นที่ข้อความนั้นเป็นอักขระภาษาฮินดีที่เหมาะสม ไม่เป็นไร แต่ปัญหาเริ่มต้นเมื่อฉันดึงข้อมูลจาก db ไปเป็น pdf ฉันเพิ่งได้รับ त५
โปรดบอกฉันว่าฉันควรทำอย่างไร? ชุดอักขระและการเข้ารหัสเป็นทั้ง utf-8
อัปเดต: รหัสที่สร้างไฟล์ PDF
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="javax.servlet.http.*,javax.servlet.*,com.lowagie.text.Document,com.lowagie.text.DocumentException,com.lowagie.text.Paragraph" %>
<%@page import="java.io.*,java.text.SimpleDateFormat,com.lowagie.text.pdf.BaseFont,com.lowagie.text.pdf.PdfContentByte,com.lowagie.text.pdf.PdfTemplate"%>
<%@page import="java.sql.*,java.nio.charset.Charset,com.lowagie.text.pdf.PdfWriter,java.awt.Graphics2D"%>
<%@ page import="java.util.List,java.util.Arrays,java.util.Collections,java.util.*,com.itextpdf.text.pdf.*,com.itextpdf.tool.xml.ElementList,com.itextpdf.text.Rectangle,com.itextpdf.text.Element,com.itextpdf.text.*,com.itextpdf.text.Font,java.awt.Color,com.itextpdf.text.Font.FontFamily,java.util.Date,java.text.*,com.itextpdf.tool.xml.XMLWorkerHelper" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List arrlist = new ArrayList();
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/a", "root", "root");
Statement st=con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs;
st.executeQuery("SET NAMES UTF8");
rs=st.executeQuery("SELECT * FROM hindi");
while(rs.next()){
arrlist.add(rs.getString("data"));
}
System.out.println(arrlist);
// step 1: creation of a document-object
Document document = new Document();
try {
// step 2:
// we create a writer
PdfWriter writer = PdfWriter.getInstance(
// that listens to the document
document,
// and directs a PDF-stream to a file
new FileOutputStream("C:/Users/hindi.pdf"));
// step 3: we open the document
document.open();
// step 4:
String text = "हो";
//String arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
//String x=new String(,Charset.forName("UTF-8"));
BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialuni.ttf",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
for(int i=0;i<2;i++){
String str =(String) arrlist.get(i);
document.add(new Paragraph(str,
new com.lowagie.text.Font(bf, 12)));
}
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate(100, 50);
cb.addTemplate(tp, 36, 750);
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
// step 5: we close the document
document.close();
%>
</body>
</html>