【问题标题】:How to store Chinese charachters in we8nswin1252 oracle database from .net application without changing database charachterset?如何从.net应用程序将中文字符存储在we8nswin1252 oracle数据库中而不更改数据库字符集?
【发布时间】:2019-07-18 07:30:28
【问题描述】:

我希望我的asp .net应用程序将中文字符存储在WE8MSWIN1252 oracle 12c数据库中,我应该使用哪个oracle客户端而不更改db Charachterset。

我正在使用 windows 服务器,我尝试将注册表中的 nls_lang 设置为中文字符集,但我的应用程序仍然存储字符,如???在数据库中。

【问题讨论】:

    标签: asp.net-mvc oracle chinese-locale


    【解决方案1】:

    简答:

    如果您的数据库字符集是WE8MSWIN1252,则不能存储中文字符。设置NLS_LANG 与在数据库中存储字符的能力无关。

    长答案:

    通常数据库的国家字符集(检查SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_NCHAR_CHARACTERSET';)支持完整的Unicode,现在默认应该是AL16UTF16。对要存储汉字的列使用NVARCHAR2NCHARNCLOB数据类型。

    解决方法可能是将您的字符串转换为 BASE64 并将它们存储在您的数据库中,请参阅Base64 encoding and decoding in oracle

    对于另一种丑陋且非常危险的解决方法,请参阅此:difference between NLS_NCHAR_CHARACTERSET abd NLS_CHARACTERSET for Oracle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-07
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      相关资源
      最近更新 更多