2011年7月1日 星期五

php中文字的切割問題

在php裡要選取字串的某些字元,通常使用 substr 函數來處理,不過,遇到中文字時,往往會有問題。
Big5 的編碼,一個中文字是二個 byte,
utf-8 的編碼,一個中文字是三個 byte.

查詢之後,可以使用 mb_substr 函數來處理,而且不用管是幾個 byte ,例如
如果是 utf-8 編碼的文字, 使用 mb_substr("這是一串中文的字串", 0, 4, "UTF-8")
這會顯示 "這是一串" 四個字,又例如
如果是 big5 編碼的文字,使用 mb_substr("這是一串中文的字串", 0, 4, "BIG5")
還是顯示 "這是一串" 四個字。
在這個函數裡,一個中文字就當做是一個字,很方便。

參考資料: http://blog.xuite.net/chenbruse/bruse/13351768

沒有留言: