我正在 Windows 上使用 Java 和 PostgreSQL。我有一些单词包括土耳其语字符,如 İ、ş、ö、ç 等。
在 Java 中,我将单词分配给字符串并尝试将其写入数据库。当我在 java 上打印它时,它的编码显示正确并且所有字符都正确显示。但是,在将其写入数据库时,文本似乎被破坏/打乱了。
我用这个命令创建了我的数据库:
CREATE DATABASE dbname ENCODING "UTF-8"
我试图通过将土耳其字符转换为 ISO-8859-1 编码来修复它,例如 (İ -> \u0130 , ş -> \u015F)
//\u0130leti\u015Fim = İletişim
title = \u0130leti\u015Fim
String mytitle = new String(title.getBytes("ISO-8859-1"), "UTF-8");
然后我尝试写入mytitle
数据库,但没有成功。
谢谢你的建议。
已解决:我意识到它可以将土耳其语字符写入数据库,但问题出在响应上。我在写回复之前添加了这些行。
String contentType= "text/html;charset=UTF-8";
response.setContentType(contentType);
response.setCharacterEncoding("utf-8");
添加后,它现在可以工作了。我希望,我能解释清楚。