帮忙解释一下8bit编码方式?

在yii2框架中看到了php与redis通过socket通信的时候,框架中计算字符串的长度和截取返回的信息都是使用的8bit这种编码方式:

mb_strlen($arg, '8bit')

文档中没有关于该编码的说明,什么时候该使用这种编码方式?这种编码方式对中文编码不会有问题?

德玛西亚99
浏览 1054回答 1
1回答

智慧大石

PHP支持mbstring.func_overload, 用于解决原生substr无法有效应对多字节编码字符串问题 mbstring支持一个“函数重载”功能,将对应的多字节版本重载到标准字符处理函数上,例如你能够让这类应用在不修改代码的前提下添加多字节的处理能力。比如,启用函数重载后,mb_substr() 将会代替 substr() 被调用。在很多情况下这个功能允许让仅支持单字节编码的应用简单地和多字节环境对接。要使用函数重载功能,设置 php.ini 里的 mbstring.func_overload 为正值,就是表示为重载函数分类的位掩码组合。要重载 mail() 函数需要设置它为 1。字符串函数设置为 2,正则表达式函数为 4。 例如,当它设置为 7, mail、strings和 正则表达式函数将都会被重载。 那么这种情况下php runtime状态是未知的, 所以在计算字符长度时, 用mb_strlen 8bit来保证计算字符串长度的正确性(按照1byte = 8bit)
打开App,查看更多内容
随时随地看视频慕课网APP