日期:2014-05-17  浏览次数:20843 次

varchar(20)
为什么varchar(20)只能输入6个汉字,谁能详细分析下字符、字节、汉字、字母、标点
------解决方案--------------------
引用:
为什么varchar(20)只能输入6个汉字,谁能详细分析下字符、字节、汉字、字母、标点

varchar只对汉字和全角等字符占多个字节,具体多少字节根据数据库的字符编码的,UTF-8就是3个字节,gbk是2个字节
数字,英文字符等都是一个字节。
varchar不推荐使用了,用varchar2(20 char)肯定能存放20个字符的
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

为什么varchar(20)只能输入6个汉字,谁能详细分析下字符、字节、汉字、字母、标点


1.       Varchar2的字段,保存汉字量是长度/3, 即 varchar2 (30) 的字段,必能保存10个汉字。

2.       nvarchar2的字段,保存汉字是1:1的,即 nvarchar2 (30) 的字段,必能保存30个汉字。

http://blog.csdn.net/yaba213/article/details/7350719

按照一个汉字占两个字节算的话,此处不是应该可以输入10个汉字吗?

不同字符编码占的字节不同,UTF-8就是3个字节,gbk是2个字节