zxe 发表于 2009-08-12 11:11

IDS11.5采用en_us.utf8,汉字存储占用问题?

IDS11.5采用en_us.utf8,汉字存储占用问题?
原来采用zh_cn.gb,一个汉字占两个英文字符位。
换成en_us.utf8后,变得有点古怪了。
char(2)的字段,插入一个“啊”或者其它汉字,显示出来是空的,将char(2)改为char(4),插入一个“啊”或者其它汉字,可以显示出来,插入两个“啊我”或者其它汉字,显示第一个汉字。
char(30)的字段,插入10个汉字可以全部显示出来,插入11-15个汉字,只能显示出前面10个汉字。
不明白,有谁碰到过,请指点,谢谢!

zhaowuxing 发表于 2009-08-12 11:11

UTF-8(8 位元 Universal Character Set/Unicode Transformation Format)是一种针对 Unicode 的可变长度字符编码。它可以用来表示 Unicode 标准中的任何字符,且其编码中的第一个字节仍与 ASCII 相容,这使得原来处理 ASCII 字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他储存或传送文字的应用中,优先采用的编码。

UTF-8 使用一至四个字节为每个字符编码:

1.128 个 US-ASCII 字符只需一个字节编码(Unicode 范围由 U+0000 至 U+007F)。
2.带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码(Unicode 范围由 U+0080 至 U+07FF)。
3.其他基本多文种平面(BMP)中的字符(这包含了大部分常用字)使用三个字节编码。
4.其他极少使用的 Unicode 辅助平面的字符使用四字节编码。

注意看第三条,汉字就属于第三条!
1个汉字的utf8=char(3)
所以: char(30)只能容纳30/3 10个汉字!

参考: http://zh.wikipedia.org/wiki/UTF-8
页: [1]
查看完整版本: IDS11.5采用en_us.utf8,汉字存储占用问题?