Informix JDBC ISO-8859-2 编码问题
Informix JDBC ISO-8859-2 encoding problem
我的 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 字符串无法识别波兰语特殊字符。 charAt()
方法 returns 65533
代码。
我试图查看该字符串的十六进制代码:
String.format("%040x", new BigInteger(1, input.getBytes("ISO-8859-2"))));
结果有效。有什么想法吗?
我设法找到了解决方案。问题出在 LANG
系统变量中。我的机器上是空的。将其更改为 en_US.ISO-8859-1
后,字符串处理得当。
我的 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 字符串无法识别波兰语特殊字符。 charAt()
方法 returns 65533
代码。
我试图查看该字符串的十六进制代码:
String.format("%040x", new BigInteger(1, input.getBytes("ISO-8859-2"))));
结果有效。有什么想法吗?
我设法找到了解决方案。问题出在 LANG
系统变量中。我的机器上是空的。将其更改为 en_US.ISO-8859-1
后,字符串处理得当。