Mysql varchar 数字计算方法 - 个数计算?2字节?3字节?4字节?编码格式决定一切啊!
2015-01-28 11:58
369 查看
http://my.oschina.net/cart/blog/372633
个数计算?字节计算?
2字节?3字节?4字节?编码格式决定一切啊!
简单的事情为什么那么复杂?装逼写算法计算数目搞得高大上?其实很简单,只是你不懂原理!
可以肯定的是,最多包含10个字符(东西)
具体是多少字节,要看字符类型和编码规则而定!
a-z,A-Z,0-9,半角标点符号 都是1个(这个大家都知道)
汉字、全角字符、法语、Emoji表情符号。。。等一切都视为1个(聪明的同学已经知道解决方法了)
最终答案:
Mysql varchar的数字计算方法
SELECT char_length('中文'); SELECT length('中文');
个数计算?字节计算?
2字节?3字节?4字节?编码格式决定一切啊!
简单的事情为什么那么复杂?装逼写算法计算数目搞得高大上?其实很简单,只是你不懂原理!
同样1个字符,可以演变出1个字节、2个字节、3个字节、4个字节,试问,你不变的算法如何正确针对可变的编码?
Mysql varchar 1个字符在不同编码下的字节数目是不同的
Mysql varchar的数字意义是:任何编码下都是按照个数计算的
Mysql varchar 到底是字节还是个数?
varchar(10),char(10)可以肯定的是,最多包含10个字符(东西)
具体是多少字节,要看字符类型和编码规则而定!
如何解决varchar字符数目长度判断或者限制?
根据上面的,我们可以从计算个数的理论上来限制即可!a-z,A-Z,0-9,半角标点符号 都是1个(这个大家都知道)
汉字、全角字符、法语、Emoji表情符号。。。等一切都视为1个(聪明的同学已经知道解决方法了)
最终答案:
if(mb_strlen($name, 'UTF-8') > 10){ exit('超过数据库最大长度varchar(10)'); }
var_dump(mb_strlen('a', 'UTF-8'));//1个 var_dump(mb_strlen('A', 'UTF-8'));//1个 var_dump(mb_strlen('8', 'UTF-8'));//1个 var_dump(mb_strlen('我', 'UTF-8'));//1个
Emoji表情符号大全,Emoji官网,4字节字符符号表情测试
相关文章推荐
- MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
- Android工具类,一些方法电话正则,是否为空,日期格式化,星期,车牌,身份证校验,设置地区编码,验证日期字符串是否是YYYY-MM-DD格式,判断字符串是否为数字
- xampp/wamp集成环境安装后,如何修改mysql的默认编码格式的方法整理
- xampp/wamp集成环境安装后,如何修改mysql的默认编码格式的方法整理
- mysql的索引key_len计算方法,及个字段所占字节数
- xampp/wamp集成环境安装后,如何修改mysql的默认编码格式的方法整理
- 将数字格式的计算结果转换为汉字结果
- 如何确定文件编码格式的方法??
- 将纯数字导入Excel时数据格式仍保持不变的方法
- 收集一些关于视频文件格式以及编码计算的一些知识
- 数字记忆好方法:数字编码
- 将数字格式的计算结果转为汉字格式
- ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
- Mysql 计算日期相差时间方法
- PHP编程----取随机数字母数字自己决定(类方法)
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 将纯数字导入Excel时数据格式仍保持不变的方法
- linux 乱码 及解决方法 locale 可以利用iconv -l 来查看linux系统都支持哪种编码格式
- MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- 查看及修改oracle编码格式方法(整理)