我们有一个使用UTF-8(NLS_CHARACTERSET = AL32UTF8)的Oracle数据库。 然后,我们在使用Hibernate的Glassfish中有一个J2EE应用程序。Oracle DB,Glassfish,休眠和字符编码
使用SQL Plus或SQL Developer时,我们可以正确读写数据,但我们无法以编程方式获取特殊字符。
读取一个ä
我们得到√§
看着我试过类似的问题:
调整Hibernate属性
<property name="hibernate.connection.characterEncoding" value="utf8" />
加入
defaultNChar=true
连接支柱erty在Glassfish的通过Hibernate
<property name="hibernate.connection.defaultNChar" value = "true"/>
设置的字符集添加
defaultNChar
连接属性设置为utf8
<property name="hibernate.connection.charSet" value="utf8" />
但我还是没能得到任何字符,其不是基本的ASCII。
任何暗示我做错了什么?
编辑:与得到我的意思是使用select语句获取。使用调试器进行检查,或者使用断言与正确的(例如,"ä"
)字符串进行比较。
你能定义“get”吗?你无法查看字符,或者无法从数据库中选择它们吗? – Ben 2012-02-05 17:41:50
@Ben:你是对的:我编辑了澄清问题。选择该值并以编程方式或使用调试器进行检查。 – Matteo 2012-02-05 19:08:14
@Matteo是nvarchar字段中的数据吗? – tbone 2012-02-06 20:12:57