我正在使我的PHP網站能夠識別Unicode。我想知道是否有人有mbstring.func_overload
設置的經驗,它用多字節當量(mb_strlen
)代替正常字符串函數(例如strlen
)。 PHP手冊頁上沒有任何評論。我應該使用多字節重載(mbstring.func_overload)嗎?
是否有任何潛在的問題我應該知道?任何調用多字節版本的情況都是一個壞主意?
我想一個例子是加密處理功能,因爲它們可能希望處理的字節串,而不是字符的字符串。
此外,手冊頁面還包含一個註釋:「不建議在每個目錄上下文中使用函數重載選項,因爲尚未確認在生產環境中足夠穩定,並可能導致未定義的行爲「。
這是否意味着它在每個目錄上下文中不穩定,或者它通常不穩定?措辭不清楚。
mbstring.func_overload只是一個壞的方式,我不知道有多少我目前尚未解決的問題,我收到的是由於這一點。我寫了一個類來生成ePub文件,以及一個處理Zip文件的伴隨類。 Zip函數中的構建沒有用處有一些原因。我花了整整一個週末來看,直到報告bug的人提到他們已經設置他們的服務器來使用utf-8。我甚至不知道mbstring.func_overload存在,現在我遇到了麻煩,因爲設置mbstring使用ascii也是不可能的,因爲我*還*使用帶有mb_函數的UTF-8。 – 2014-06-16 11:27:54