在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  HTML/ 幫忙解釋一下8bit編碼方式?

幫忙解釋一下8bit編碼方式?

在yii2框架中看到了php與redis通過socket通信的時候,框架中計算字符串的長度和截取返回的信息都是使用的8bit這種編碼方式:

mb_strlen($arg, '8bit')

文檔中沒有關于該編碼的說明,什么時候該使用這種編碼方式?這種編碼方式對中文編碼不會有問題?

回答
編輯回答
荒城

PHP支持mbstring.func_overload, 用于解決原生substr無法有效應對多字節(jié)編碼字符串問題

mbstring
支持一個“函數(shù)重載”功能,將對應的多字節(jié)版本重載到標準字符處理函數(shù)上,例如你能夠讓這類應用在不修改代碼的前提下添加多字節(jié)的處理能力。
比如,啟用函數(shù)重載后,mb_substr() 將會代替 substr() 被調用。
在很多情況下這個功能允許讓僅支持單字節(jié)編碼的應用簡單地和多字節(jié)環(huán)境對接。

要使用函數(shù)重載功能,設置 php.ini 里的 mbstring.func_overload 為正值,就是表示為重載函數(shù)分類的位掩碼組合。
要重載 mail() 函數(shù)需要設置它為 1。字符串函數(shù)設置為 2,正則表達式函數(shù)為 4。 例如,當它設置為 7, mail、strings和 正則表達式函數(shù)將都會被重載。

那么這種情況下php runtime狀態(tài)是未知的, 所以在計算字符長度時, 用mb_strlen 8bit來保證計算字符串長度的正確性(按照1byte = 8bit)

2018年9月1日 07:45