Seperti pertanyaan saya, apakah mungkin untuk menyimpan karakter hindi langsung ke database tanpa menyandikannya. Misalnya saya memiliki kata ini, saya mengetik di bidang teks saya di halaman jsp त५
. Saya perlu menyimpan nama di database mysql.
Alasan saya menanyakan hal ini adalah saya mencoba menyandikannya menggunakan UTF-8 dan bahkan di tabel, saya membuat ini
CREATE TABLE `hindi` (
`data` varchar(200) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Tapi itu memberi saya त५
yang ketika saya ambil kembali di textarea adalah karakter hindi yang tepat. Ini tidak masalah. Tapi masalahnya dimulai ketika saya mengambilnya dari db ke pdf saya baru saja mendapatkan त५
Tolong beri tahu saya apa yang harus saya lakukan? charset dan pengkodean keduanya utf-8
PEMBARUAN: Kode yang menghasilkan 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>