为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:win10
【CPU】:
【问题描述】*:
是英文,汉字都算1个字符吗
当LENGTH_IN_CHAR=0的情况下,varchar()的长度是以字节数为单位。这时我们只需要考虑汉字和全角字符所占用字节数,其中gb18030的一个汉字是两个字节,utf-8的一个汉字一般是三个字节。如果插入数据的总字节数大于varchar定义的长度,则会插入失败。
当LENGTH_IN_CHAR=1的情况下,varchar()所能存储的字节数将会按照一定比例扩展。字符集为gb18030时varchar的字节数等于定义长度2,字符集为utf-8时varchar的字节数为定义长度4。也就是例如,字符集gb18030时,varchar(10)可以存放20个英文,10个中文,utf8时,varchar(10)可以存放40个英文,13.3个中文
在初始化实例的时候设置参数LENGTH_IN_CHAR=0(varchar字节为单位)。Utf-8一个汉字占用三个字节,一个汉字占三个字节,一个英文字母占一个字节。varchar以字节为单位。一个varchar等于一个字节。