繁体   English   中英

在Oracle和Java中获取UTF-8字符问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM