1、oracle10g数据库表字段是varchar(n)类型oracle中文占几个字符oracle中文占几个字符,保存英文很简单,只要字母个数不大于n即可。
但是对于汉字,同样的方法就不行了。 因为对于汉字的不同字符集,
在数据库中占用的字节数不一样。
UTF-8字符集,一个汉字占三个字节,gbk字符集,一个汉字占两个字节,
比如varchar(10)类型的字段,UTF-8只能存储3个汉字,而gbk字符集可以存储5个汉字。
因此,在程序中,根据表字段varchar的大小,在保存或更新时进行必要的检查,否则会在后台报错。
二、方法: 1、利用表的maxlength属性,如maxlength="5",即只能存放5个汉字。
UTF-8:Unicode Transformation Format-8bit,允许有BOM,但通常不包含BOM。
它是一种用于解决国际字符的多字节编码。 它使用 8 位(即一个字节)表示英文。
中文使用 24 位(三个字节)进行编码。 UTF-8包含了世界上所有国家都需要使用的字符,
是通用性强的国际代码。 UTF-8编码的文本可以在各国支持UTF8字符集的浏览器上显示。
比如UTF8编码,老外的英文IE也能显示中文,不需要下载IE的中文支持包。
GBK是在国家标准GB2312的基础上扩展后兼容GB2312的标准。
GBK的文字编码是用双字节表示的,即中英文字符都是用双字节表示的。
为了区分中文,最高位设置为1。GBK包含所有汉字,是国家代码。
通用性比UTF8差,但是UTF8占用的数据库比GBK大。
GBK、GB2312等与UTF8必须通过Unicode编码才能相互转换:
GBK、GB2312 – Unicode – UTF8
UTF8 – 统一码 – GBK, GB2312
3.对于网站或论坛,如果英文字符较多,建议使用UTF-8以节省空间。 但是现在很多论坛插件一般只支持GBK。
GB2312是GBK的子集,GBK是GB18030的子集
GBK 是一个包含中文、日文和韩文字符的大字符集
如果是中文网站推荐GB2312 GBK,有时候还是有问题
为了避免所有乱码,应该使用UTF-8,以后支持国际化会很方便
UTF-8 可以看作是一个大字符集,它包含了大多数文本的编码。
使用UTF-8的一个好处就是其他地区(比如港台)的用户不用安装简体中文支持就可以看到你的文字没有乱码。
gb2312是简体中文代码
gbk 支持简体中文和繁体中文
big5支持繁体中文
utf-8 几乎支持所有字符
4、MySQL 5.0及以上版本:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
varchar(n)表示n个字符,不分汉字和英文,Mysql可以存储n个字符,只是实际字节长度不同
5、MySQL校验长度,SQL语言可用:
select LENGTH(fieldname) from tablename 进行查看