无法显示unicode字符

时间:2011-10-12 11:05:05

标签: java postgresql unicode unicode-string

我想在我的JSP页面中显示存储在PostgreSQL数据库中的土耳其语字符:<meta http-equiv="content-type" content="text/html;charset=utf-8" />

我仍然无法在屏幕上看到真正的土耳其字符。在数据库中,字符串存储为%C4%9F%C4%B1%C4%B0%C3%B6%C5%9F%C3%BC%C4%9F%C4%B0

当我使用resultsetwrapperobject.getstring("columnname");从PostgreSQL获取它时,它会自动将其转换为如下字符串:\304\237\304\261\304\260\303\266\305\237\303\274\304\

我想知道为什么会发生这种自动转换以及如何停止此转换。

1 个答案:

答案 0 :(得分:2)

您可以查看一下'resultsetwrapperobject'类的代码吗?可能是实现使用具有默认(或特殊)编码的缓冲读取器。

您可以使用

public String(byte bytes[], String charsetName)

用于转换字符串

final String charSet = "UTF8"; // or "ISO-8859-1"
String tSrt = resultsetwrapperobject.getstring("columnname");
tStr = new String(tStr.getBytes(),charSet);

您也可以尝试将java默认域编码设置为java系统属性。

  

-Dfile.encoding = UTF8