字符集的概念其实很基础。
各国的文字不同,但在计算机内每个字符都是使用了某种规定的编码。
一个英文字符通常占一个字节,而汉字、韩文和日文等文字则需要两个字节。
字符集的不同,给信息交换造成了很多阻碍。
我们常说的Unicode是一个国际标准,它代表了世界上使用的主要语言中的通用字符。Unicode编码的好处是它允许数据无歧义的纯文本表示,这可以大大简化混合平台环境中的数据共享。

解决方案 »

  1.   

    很多字符集都属于unicode字符集,参考:
    http://www.qiliang.net/qt/unicode.html
      

  2.   

    没说到点子上!强调一下:这里的字符集指的是什么?国家字符集又指的什么?数据库里的数据什么时候用到国家字符集,什么时候用到数据库字符集,两者是怎样一个关系?
        
    “SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?
      

  3.   

    数据库字符集,是你的数据存放在数据库中使用的字符集。
    国家字符集,按我的理解,决定你这个Oracle的版本,你可以选择数据库字符集为中文,国家字符集为英文,然后,进入sqlplus,看看它的提示信息是什么,就知道区别了。
      

  4.   

    oracle支持多国语言字符集,它可以使用户使用本国语言与ORACLE交互,一般情况下,可以将国家字符集与数据库字符集设为一样的,比如我这里就将字符集均设为AMERICAN_AMERICA.US7ASCII,客户端通过修改为同样的字符集,也可以实现中文的正常存取和显示。
    ORACLE8中有一个新的数据类型NCHAR,它可以在一个数据库INSTANCE中共存两个字符集。
      

  5.   

    to developer2002:
       我想国家字符集是用户与oracle交互的时候,oracle显示的提示信息采用的字符集!to wangweixy:
       - - -“将字符集均设为AMERICAN_AMERICA.US7ASCII,客户端通过修改为同样的字符集,也可以实现中文的正常存取和显示。”    如果数据库字符集为AMERICAN_AMERICA.US7ASCII,怎么能支持中文呢?应该用SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这样的字符集才能支持中文啊?
    还有:
        “SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?谁能再讲讲!
      

  6.   

    哦?你确定用US7ASCII做字符集可以正确进行存取吗?显示中文可能会是正常,因为和OS也有关,例如:中文的OS。
      

  7.   

    to:  developer2002:
       我同意你的观点!我这有个例子:在2000 命令提示符下,向表中插入汉字显示不出来。插的时候可以显示,插入后查询显示不出来。且用“桌面”sql*plus也显示不出来!
    用“桌面”sql*plus插入的汉字也不能在“命令行”sql*plus下显示。这显然是一个字符集的问题!   不知道如何解释这个现象!
      

  8.   

    有关:
        “SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?
    谁能贴点东西出来?
      

  9.   

    SQL NCHAR 数据类型”,“SQL CHAR 数据类型”这种问题很少见到。
    我只知道ZHS16GBK是Oracle里必需要的,否则他不显示中文啊
    这非常重要。。
      

  10.   

    注册表里的NLS_LANG有两部分AMERICAN_AMERICA.WE8ISO8859P1,SIMPLIFIED CHINESE_CHINA.ZHS16GBK等,点前面的就是国家字符集,如AMERICAN_AMERICA等,点后面的是数据库字符集,如WE8ISO8859P1等,一般我们数据库文件是从dmp文件导入的话,只要保持dmp文件和数据库字符集一致,不管是WE8ISO8859P1,还是ZHS16GBK都能正确解析中文,但如果修改数据库字符集的话,就会显示乱码,我甚至用AMERICAN_AMERICA.ZHS16GBK,和 SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1好象也没有出现乱码,但关于国家字符集到底在哪里用,好象也不是很清楚,另外ORACLE的操作界面的语言是和在安装时候选择的语言有关,应该和字符集无关
      

  11.   

    我知道了!
    nchar 和 char 只是数据库中的两种数据类型!