首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLS_NCHAR_CHARACTERSET解释

NLS_NCHAR_CHARACTERSET解释
EN

Stack Overflow用户
提问于 2014-10-17 10:08:00
回答 1查看 9.4K关注 0票数 2

首先,我不是Oracle用户专家,所以我有一些问题需要解决:D.我们的应用程序是一个带有Nhibernate db连接的MVC应用程序。问题在于当我们试图将像‘Ѽó’这样的字符保存到一个Ѽ字段中时,它们会被保存为一个问号'?‘。为了解决这个问题,我们在数据库中换了一个不同的字符集。

以下是我们在安装时的nls_database_parameters:

代码语言:javascript
复制
NLS_LANGUAGE                   AMERICAN                                 
NLS_TERRITORY                  AMERICA                                  
NLS_CURRENCY                   $                                        
NLS_ISO_CURRENCY               AMERICA                                  
NLS_NUMERIC_CHARACTERS         .,                                       
NLS_CHARACTERSET               EE8ISO8859P2                             
NLS_CALENDAR                   GREGORIAN                                
NLS_DATE_FORMAT                DD-MON-RR                                
NLS_DATE_LANGUAGE              AMERICAN                                 
NLS_SORT                       BINARY                                   
NLS_TIME_FORMAT                HH.MI.SSXFF AM                           
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM                 
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                       
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR             
NLS_DUAL_CURRENCY              $                                        
NLS_COMP                       BINARY                                   
NLS_LENGTH_SEMANTICS           BYTE                                     
NLS_NCHAR_CONV_EXCP            FALSE                                    
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              10.2.0.4.0            

原始的NLS_CHARSET是EE8ISO8859P2,我们将其更改为: AL32UTF8 (工作非常完美)。问题是,NLS_NCHAR_CHARACTERSET不适合处理像nvarchar2这样的字段的特殊字符吗?如果没有,那么谁能给我解释一下它的咕噜声?

编辑: NLS_LANG设置为: POLISH_POLAND.AL32UTF8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-17 13:08:32

在早期,即在Unicode可用之前,使用了国家字符集。其主要思想是在存储语言独立项的地方设置通用字符集(包括任何源代码等)。对于VARCHAR2/CHAR,并有一个特定于客户的,即特定于语言的NVARCHAR2/NCHAR国家字符集.

在我看来,现在没有理由使用它,因为AL32UTF8 (或任何其他Unicode编码)无论如何都可以存储任何字符。

也许,当你用非西方语言工作时,像AL16UTF16AL32UTF32这样的民族字符在存储和效率方面略显有益。

关于您的问题:全国字符集AL16UTF16能够存储任何Unicode字符,因此您的波兰字符应该没有问题。但是,您的客户端应用程序(或所选字体)可能无法显示这些字符。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26422688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档