[英]Geting UTF-8 character issue in Oracle and Java
在Oracle中有一个包含列类型的表是NVARCHAR2
。 在本专栏中,我试图保存俄语字符。 但它显示像这样的¿¿¿¿¿¿¿¿¿¿¿ 当我尝试从Java中获取相同的字符时,我得到相同的字符串。
我试过NCHAR
VARCHAR2
。 但在所有情况下同样的问题。
这是Java或Oracle的问题吗? 我尝试使用相同的Java代码,使用PostgreSQL的相同字符工作正常。 我不知道这个问题是来自Oracle还是Java?
在我的oracle数据库中, NLS_NCHAR_CHARACTERSET
属性值为AL16UTF16
。 任何想法如何显示在Java中保存在Oracle中的UTF-8字符。
角色的问题是你不能相信你的眼睛。 也许数据库存储正确的字符值,但您的查看工具不理解它们。 或者由于语言设置,角色可能会在途中被转换。
要找出表中存储的字符值,请使用dump
函数:
例:
select dump(mycolumn),mycolumn from mytable;
这将为您提供数据的字节值,您可以检查表中的值是否与它们应该的一样。
做了一些谷歌我已经解决了我的问题。 这是ans: AL32UTF8 is the Oracle Database character set that is appropriate for XMLType data. It is equivalent to the IANA registered standard UTF-8 encoding, which supports all valid XML characters.
AL32UTF8 is the Oracle Database character set that is appropriate for XMLType data. It is equivalent to the IANA registered standard UTF-8 encoding, which supports all valid XML characters.
这意味着在Oracle中创建数据库时,请设置AL32UTF8
字符集。
这是链接
http://docs.oracle.com/cd/B19306_01/server.102/b14231/create.htm#i1008322
在从数据库获取连接时,需要指定useUnicode=true&characterEncoding=UTF-8
。 还要确保该列支持UTF-8
编码。 浏览Oracle文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.