Redian新闻
>
hibernate一个国际化保存unicode value的问题
avatar
hibernate一个国际化保存unicode value的问题# Java - 爪哇娇娃
l*2
1
一个stored precedure,input parameters are int, nvarchar, date
通过hibernate做insert后,发现数据库保存的中文字符都变成了junk。觉得问题主要
在nvarchar上,hibernate好像不认这种datatype,要不就是microsoft的jdbc driver
不支持这种类型。
不知道这里谁做过国际化的项目?有人遇见过类似的问题吗?
avatar
m*t
2
I doubt it's hibernate. By the time it gets into hibernate, it's all unicode
already. How is the encoding set in your sql server? Are your chinese
characters in gb2321 or utf-8?
avatar
l*2
3
我不知道是哪儿的问题?我在sql server上面run过一些sql query来测试它支持不支持
unicode,比如 insert into tablename Values ( 1, 'aa', N'中文字符'),我可以看
到这个'中文字符'能被正确保存下来。另外我还测试过繁体,日文,德文,etc,都没问
题,所以我想问题应该不在sql server的设置上。
我的application 用Spring的jdbcTemplate来call一个stored procedure,用
sqlparametersource的addValue来设置参数,可.addValue("paraName", paraValue,
Types.NVARCHAR)报错,说我的microsoft jdbc driver不支持NVARCHAR。可我的driver
是支持的。
我也想过用别的方法来impl这个,可找不到支持NVARCHAR的method。

unicode

【在 m******t 的大作中提到】
: I doubt it's hibernate. By the time it gets into hibernate, it's all unicode
: already. How is the encoding set in your sql server? Are your chinese
: characters in gb2321 or utf-8?

avatar
g*g
4
You should do a simple test, just do a write and read, set debug
point and check where it's screwed up. It's often somewhere in your
application instead.

driver

【在 l****2 的大作中提到】
: 我不知道是哪儿的问题?我在sql server上面run过一些sql query来测试它支持不支持
: unicode,比如 insert into tablename Values ( 1, 'aa', N'中文字符'),我可以看
: 到这个'中文字符'能被正确保存下来。另外我还测试过繁体,日文,德文,etc,都没问
: 题,所以我想问题应该不在sql server的设置上。
: 我的application 用Spring的jdbcTemplate来call一个stored procedure,用
: sqlparametersource的addValue来设置参数,可.addValue("paraName", paraValue,
: Types.NVARCHAR)报错,说我的microsoft jdbc driver不支持NVARCHAR。可我的driver
: 是支持的。
: 我也想过用别的方法来impl这个,可找不到支持NVARCHAR的method。
:

avatar
l*2
5
如果addValue 只有两个参数,没有Types.NVARCHAR这第三个参数,程序运行没有问题
,只是想insert的中文字符存到数据库后都变成了junk

【在 g*****g 的大作中提到】
: You should do a simple test, just do a write and read, set debug
: point and check where it's screwed up. It's often somewhere in your
: application instead.
:
: driver

avatar
A*o
6
去国内的论坛看看吧。那些人对这种问题更有经验。
我记得有个hibernate中文网什么的。

driver

【在 l****2 的大作中提到】
: 一个stored precedure,input parameters are int, nvarchar, date
: 通过hibernate做insert后,发现数据库保存的中文字符都变成了junk。觉得问题主要
: 在nvarchar上,hibernate好像不认这种datatype,要不就是microsoft的jdbc driver
: 不支持这种类型。
: 不知道这里谁做过国际化的项目?有人遇见过类似的问题吗?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。