C# 使用NHibernate将汉字保存到oracle时出现问题

C# 使用NHibernate将汉字保存到oracle时出现问题,c#,oracle,nhibernate,C#,Oracle,Nhibernate,我试图用Nhibernate到C#将汉字保存到oracle数据库中,保存的汉字总是以一些垃圾字符结尾 我已经做了以下工作: 该字段的Hbm映射为 声明为AnsiString类型,并且 列类型为sql type=“nvarchar”。 还尝试了字符串和nvarchar2 也是 数据库列数据类型为 NVARCHAR2 注册处、环境 变量和数据库字符集 NLS_LANG设置为UTF8 我能够通过sql开发人员阅读汉字输入。但当我试图检索它们(字符在屏幕上正确显示)并尝试将它们保存回数据库而不做任何更改

我试图用Nhibernate到C#将汉字保存到oracle数据库中,保存的汉字总是以一些垃圾字符结尾

我已经做了以下工作:

  • 该字段的Hbm映射为 声明为AnsiString类型,并且 列类型为sql type=“nvarchar”。 还尝试了字符串和nvarchar2 也是
  • 数据库列数据类型为 NVARCHAR2
  • 注册处、环境 变量和数据库字符集 NLS_LANG设置为UTF8
  • 我能够通过sql开发人员阅读汉字输入。但当我试图检索它们(字符在屏幕上正确显示)并尝试将它们保存回数据库而不做任何更改时,保存的数据变为“�����".


    有人知道我漏掉了什么吗?

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

    有关一般方法,请参见我的

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