2009-11-17 53 views
2

我试图插入数据与日本字符到oracle数据库。事情是在数据库中保存的是一堆倒置的问号。我该如何解决这个问题休眠编码

+1

您确定您拥有正确的数据库字符集吗? – bmargulies 2009-11-17 02:36:43

+0

是的。当我通过pl/sql直接输入并保存nihongo数据时,它被成功保存。但是当我使用我的应用程序休眠时,它会保存倒立的问号 – cedric 2009-11-17 03:23:15

回答

3

请参阅http://www.errcode.net/blogs/?p=6来确定您的数据库的编码。我目前在UTF-8中使用带Hibernate的Oracle,没有额外的配置。

另外,您可能想要检查输入值是否正确编码。例如,如果您有Web应用程序,请检查请求参数编码(或将其设置为request.setCharacterEncoding("utf-8")

+0

我正在使用Oracle数据库与休眠。我的数据库的当前编码是WE8MSWIN1252。无论如何,我可以通过PL/SQL成功保存nihongo字符。 我插入的值也不是来自页面形式..我最初硬编码在我的DAO值,以检查问题是否与请求编码或与休眠本身。 – cedric 2009-11-17 07:25:39

+0

那么,有你的问题 - 编码更改为UTF-8(而不是1252)。它从某个地方运行的事实并不意味着这些设置是正确的。 硬编码值受Java文件编码或VM编码影响 - 需要检查的变量太多。 – Bozho 2009-11-17 07:34:15

+0

Whew ..经过一个星期的故障排除。这解决了我的问题。我使用AL32UTF8字符集创建了一个新的db实例。 Tnx .. :) – cedric 2009-11-17 10:03:08