Informix JDBC ISO-8859-2 编码问题

Posted

技术标签:

【中文标题】Informix JDBC ISO-8859-2 编码问题【英文标题】:Informix JDBC ISO-8859-2 encoding problem 【发布时间】:2018-09-05 15:06:50 【问题描述】:

我的 Java 应用程序中的字符串编码存在问题。我的 Informix 数据库采用 ISO-8859-2 编码。我在连接字符串中设置了DB_LOCALE。我的连接 URL 如下所示:

jdbc:informix-sqli://test/test:informixServer=test;portNumber=1542;databaseName=test;serverName=test_informix;ifxIFXHOST=test;DB_LOCALE=pl_PL.8859-2;DBDATE=Y4MD-;IFX_LOCK_MODE_WAIT=10;

从数据库中选择数据后,Java String 无法识别波兰语特殊字符。 charAt() 方法返回 65533 代码。

我试图查看该字符串的十六进制代码:

String.format("%040x", new BigInteger(1, input.getBytes("ISO-8859-2"))));

结果是有效的。任何想法问题出在哪里?

【问题讨论】:

【参考方案1】:

我设法找到了解决方案。问题出在LANG 系统变量中。我的机器上是空的。将其更改为en_US.ISO-8859-1 后,字符串处理正常。

【讨论】:

以上是关于Informix JDBC ISO-8859-2 编码问题的主要内容,如果未能解决你的问题,请参考以下文章

将 utf-8 转换为 iso-8859-2(抛光)

JSF ISO-8859-2 字符集

为 iso-8859-2 发送正确的字符集标头

SAXException iso-8859-2

Java 邮件字符集 ISO-8859-2 不起作用

python怎么解码ISO-8859-2格式.并转换为utf-8