繁体   English   中英

使用NHibernate将汉字保存到oracle中的问题

[英]Problem with saving chinese character into oracle using NHibernate

我正在尝试使用Nhibernate通过C#将汉字保存到oracle DB中,并且保存的字符总是以某些垃圾字符结尾。

我已经完成以下工作:

  1. 字段的Hbm映射声明为AnsiString类型,列类型声明为sql-type =“ nvarchar”。 也尝试了String和nvarchar2。
  2. 数据库列的数据类型为NVARCHAR2。
  3. 注册表,环境变量和数据库字符集NLS_LANG设置为UTF8。

我可以通过sql开发人员阅读中文字符输入。 但是,当我尝试检索它们(字符在屏幕上正确显示)并尝试将它们保存回数据库而不作任何更改时,保存的数据变成了`` ''。

有人知道我在这里错过了什么吗?

我将检查.NET端真正的数据是什么。 不要相信控制台上显示的内容-查看UTF-16代码点。

有关一般方法,请参见我的调试unicode文章

我似乎记得在Oracle中遇到过一些问题,这些问题只能通过设置数据库编码然后重建数据库来解决-我无法将其应用于现有的数据库。 但是,细节是在昏暗而遥远的过去...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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