字符集的概念其实很基础。
各国的文字不同,但在计算机内每个字符都是使用了某种规定的编码。
一个英文字符通常占一个字节,而汉字、韩文和日文等文字则需要两个字节。
字符集的不同,给信息交换造成了很多阻碍。
我们常说的Unicode是一个国际标准,它代表了世界上使用的主要语言中的通用字符。Unicode编码的好处是它允许数据无歧义的纯文本表示,这可以大大简化混合平台环境中的数据共享。
各国的文字不同,但在计算机内每个字符都是使用了某种规定的编码。
一个英文字符通常占一个字节,而汉字、韩文和日文等文字则需要两个字节。
字符集的不同,给信息交换造成了很多阻碍。
我们常说的Unicode是一个国际标准,它代表了世界上使用的主要语言中的通用字符。Unicode编码的好处是它允许数据无歧义的纯文本表示,这可以大大简化混合平台环境中的数据共享。
http://www.qiliang.net/qt/unicode.html
“SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?
国家字符集,按我的理解,决定你这个Oracle的版本,你可以选择数据库字符集为中文,国家字符集为英文,然后,进入sqlplus,看看它的提示信息是什么,就知道区别了。
ORACLE8中有一个新的数据类型NCHAR,它可以在一个数据库INSTANCE中共存两个字符集。
我想国家字符集是用户与oracle交互的时候,oracle显示的提示信息采用的字符集!to wangweixy:
- - -“将字符集均设为AMERICAN_AMERICA.US7ASCII,客户端通过修改为同样的字符集,也可以实现中文的正常存取和显示。” 如果数据库字符集为AMERICAN_AMERICA.US7ASCII,怎么能支持中文呢?应该用SIMPLIFIED CHINESE_CHINA.ZHS16GBK 这样的字符集才能支持中文啊?
还有:
“SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?谁能再讲讲!
我同意你的观点!我这有个例子:在2000 命令提示符下,向表中插入汉字显示不出来。插的时候可以显示,插入后查询显示不出来。且用“桌面”sql*plus也显示不出来!
用“桌面”sql*plus插入的汉字也不能在“命令行”sql*plus下显示。这显然是一个字符集的问题! 不知道如何解释这个现象!
“SQL NCHAR 数据类型”,“SQL CHAR 数据类型” 又是什么?
谁能贴点东西出来?
我只知道ZHS16GBK是Oracle里必需要的,否则他不显示中文啊
这非常重要。。
nchar 和 char 只是数据库中的两种数据类型!