三、Oracle数据库如何存储多国文字
首先,先看一个有趣的问题。我们要保存的文字哪里来?一种方法是在屏幕上输入,输入中文时,我们打开自己习惯的输入法,在应用程序给你提供的输入框内输入文字;还有一种方法是复制粘贴的方法,将文字从网页、文档中拷贝后再粘贴到输入框中,那问题是:输入框中的文字使用的字符集是什么?有人说,是客户端操作系统的默认字符集。好,我的操作系统是简体中文,默认系统字符集是GB2312,在输入框中输入韩文字符“삼성”,如果这两个韩文字符是用GB2312字符集解码的,输入框内应该显示两个“?”,因为GB2312字符集内没有韩文字符只能用“?”代替。但是现在这两个韩文字符在输入框内正常的显示,说明这两个韩文的字符集是支持韩文字符的字符集,是韩文字符集“euc-kr”,还是Unicode字符集?肉眼看不出来,也许查看一下内存中输入框中文字的编码能找到答案,喜欢钻研的人可以去看一看。表面来判断,可能是根据输入法使用的字符集,输入法使用什么样的字符集,输入的文字就是用的什么样的字符集。从网页上复制粘贴过来的文字,应该跟网页的字符集是一致的。其实,我们不关心多国文字背后的字符集是用的本国字符集还是unicode字符集,我们关心的是多国文字如何在数据库中被正确地存取。
以oracle 10g R2 10.2.0.3 作为测试数据库版本,在数据库建立一张表:
表名称:mer_categ,商品类别表
字段 |
数据类型 |
长度 |
说明 |