现在的数据库,一个中文是一个字符还是两个字符?就是定义一个六个汉字的字段要定义为varchar(12)还是varchar(6)? 现在的数据库,一个中文是一个字符还是两个字符?就是定义一个六个汉字的字段要定义为varchar(12)还是varchar(6)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在MYSQL中准确的说是一个字符!但未必是一个字节或几个字节。这个要根据你的字符集设置而定。比如GBK则一个中文是2个字节。而UTF8则一个中文是3个字节。更多说明,可以参考下贴中关于字符集部分的简单说明。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 楼主为什么不自己试下呢?varchar(6)就好了,类型带的数字是显示的数量,占用的字符和类型没关系,和字符集有关系; 就是啊,实践出真知。试一下,你就知道了。mysql的长度是字符,而不是字节。 mssql,中文一般用nvarchar,如果6个中文字,定义地段长度为nvarchar(6) 汉字如果用utf-8编码 则三个字节 不是字符,而是占据几个字节的问题!而且这还很字符编码有关,比如gbk中,一个中文只占据2个字节。就是2bytes;而在utf-8中,则占据3个字节,那是utf-8是国际通用的,所以英文一个字节中文2个字节,总共需要3个字节,也就是3bytes。现在明白了吧。 按一个汉字 3Bytes大小来估算总长度需求就好。 最近遇到过数据库表的key长度超标的情况才搞懂了字符编码不同,各自所占的字节数编码设为UTF-8时,超标latin1时,不超标我们系统没有中文,于是latin1就行了。一个字符只用1字节存储。 看编码吧。。gbk 一个汉字 2个字节 定义6个汉字 需要 varchar(12)utf-8 一个汉字 3个字节 定义6个汉字 需要 varchar(18) 请高手解决个问题。。 mfc 无法连接到远程mysql数据库。。 mysql 5.1事务处理问题 求条sql统计语句 问一个mysql的sql语法问题,谢谢 关于索引何时建立的问题 请问MYSQL4.0表的大小有限制吗?3.23限制是4G是吗? 请教一个SQL语句,在线等待,大家进来帮帮忙啊! MY SQL 能不能在2000下使用! 一个mysql的分组排序的问题 MYSQL 怎么删除变量 mysql中的字符串类型是怎么个情况
而UTF8则一个中文是3个字节。更多说明,可以参考下贴中关于字符集部分的简单说明。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
不是字符,而是占据几个字节的问题!而且这还很字符编码有关,比如gbk中,一个中文只占据2个字节。就是2bytes;而在utf-8中,则占据3个字节,那是utf-8是国际通用的,所以英文一个字节中文2个字节,总共需要3个字节,也就是3bytes。现在明白了吧。
才搞懂了字符编码不同,各自所占的字节数
编码设为UTF-8时,超标
latin1时,不超标
我们系统没有中文,于是latin1就行了。一个字符只用1字节存储。
gbk 一个汉字 2个字节 定义6个汉字 需要 varchar(12)
utf-8 一个汉字 3个字节 定义6个汉字 需要 varchar(18)