utf8是可变宽度的字符集,有的字符占2位,有的则能占到三位。
你需要注意你的字符集设置。

解决方案 »

  1.   

    在安装数据库时注意选择字符集,有些环境下默认中文是2字节,但是有些是3字节,特别是aix上是3字节,得手工调整一下。
      

  2.   

    GB2312编码中一个汉字是16位的,而UTF8中一个汉字却是24位的。
    也就是说我们通常接触的字符集基本都是GB系列,所以一个汉字是2个字节,而UTF8则一个汉字3个字节。
    ORACLE中VARCHAR存储是按字节计算的。如果是UTF8,10个字节只能存3个汉字。
      

  3.   

    这么定义:nVarchar2(10) --其中10指能存放的字符个数