php中的mb_detect_encoding函数原理是什么
程序员文章站
2022-05-18 08:07:56
...
php中的
mb_detect_encoding
可以根据输入的字符串判断它到底属于哪种编码,这种判断是如何进行的,utf-8和asc的宽度都不一样,而且前者还是变长的,它如何判断多出来的那个字节到底是属于下一个字的还是这个字最后一个字节
回复内容:
php中的mb_detect_encoding
可以根据输入的字符串判断它到底属于哪种编码,这种判断是如何进行的,utf-8和asc的宽度都不一样,而且前者还是变长的,它如何判断多出来的那个字节到底是属于下一个字的还是这个字最后一个字节
与其说utf-8
跟 ascii
区别,不如说如何判断 ascii
和非ascii
ascii
最大是127
,判断时,只要这个字节大于127,也就是7f
,就可以认定是这个字节属于多字节编码。不论是GBK
还是UTF-8
都是兼容ascii
。
1. utf-8
每个字的第一个字节,有表示这个字总共有多少个字节。所有变长的数据类型基本是这么实现的, 比如数据库的varchar
也是有多出来的字节保存长度,就不会误读。
2. GBK
是等宽双字节的,只要这个字节不是ascii
字符,就把它和下一个读在一起就OK 了
3. 至于如何猜测 utf-8
和gbk
,我也不了解。猜测应该是通过一些算法,去匹配编码规律或码表吧,关于这个可以参考:http://blog.csdn.net/ecjtuync/article/details/1774429
下一篇: 求大神帮忙看看哪里错了
推荐阅读
-
PHP字符串函数系列之nl2br(),在字符串中的每个新行 ( ) 之前插入 HTML 换行符br
-
php中mail函数发送邮件失败的解决方法
-
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
-
WordPress中调试缩略图的相关PHP函数使用解析
-
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
-
PHP中md5()函数的用法讲解
-
PHP中ltrim()函数的用法与实例讲解
-
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
-
php中钩子(hook)的原理与简单应用demo示例
-
PHP单文件上传原理及上传函数的封装操作示例