首页 > 解决方案 > Java 无法从 Db2 数据库中读取中文字符

问题描述

我正在尝试从 Db2 数据库中读取 Java 应用程序汉字

Db2 数据库配置

DB2 数据库 XDSN3T 配置:

DB2 数据库 XDSN3T 配置

使用 DB2 CLP 数据正确显示

在此处输入图像描述

也来自另一个delphi应用程序中文数据是正确的

在此处输入图像描述 为了获得这个我设置:

非 unicode 程序:

非 unicode 程序 - 环境变量,DB2CODEPAGE = 1252

db2 代码页: 在此处输入图像描述

只有 Java 不能正确显示数据 --> ÃæÁÏ¡¢¸¨ÁÏ¡¢¸½¼þ

在此处输入图像描述

也许与JDBC有关的东西..

标签: javadb2character

解决方案


正如人们所说,编码可能是一个问题。Java 中的字符是使用 UTF-16 编码存储的,这本身就存在一些关于中文(还有一些表情符号)字符编码的问题。

您可以在此处找到 UTF-16 的字符列表: https ://www.fileformat.info/info/charset/UTF-16/list.htm

当字符无法使用单个 16 位单元进行编码时,就会出现 UTF-16 的问题。这些字符使用两个 16 位单元编码,称为代理对。请参阅:https ://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#unicode

抱歉,我无法提供完整的答案,但我希望这会有所帮助


推荐阅读