分割GBK中文遭遇亂碼的解決方法
類似如下的字符串(GBK), explode不能得到正確結(jié)果:
1.$result = explode("|", "滕華弢|海青"); 究其原因, 對于”弢”字(讀tao,不認識沒關(guān)系,我也不認識), 因為他的GBK編碼值為: 8f7c, 不巧的是, “|”的ASCII值也是7c.
這樣的問題, 還有很多 : 因為GBK編碼的編碼范圍是: 0×8140-0xfefe, 所以, 理論上來說, 任何低字節(jié)是7c的字都會有這個問題, 比如:
1.倈(827c), 億(837c), 眧(b17c), 鍇(e57c).......等等等等對于這樣的情況,
1.第一, 可以采用轉(zhuǎn)碼到utf8, 然后explode, 再轉(zhuǎn)回來, 這是比較麻煩的方法.
2.第二, 我們可以采用正則拿"匹配出"來代替"分離出":
3.preg_match_all("/([/x81-/xfe][/x40-/xfe])+/", $gbk_str, $matches);//寫死編碼這樣, $matches中0號索引對應的數(shù)組就是結(jié)果詞的數(shù)組了..
相關(guān)文章
thinkphp項目部署到Linux服務器上報錯“模板不存在”如何解決
一個項目部署到Linux服務器上去的時候,發(fā)現(xiàn)某些模板竟然會報錯說“模板不存在:/Application/Admin/....”,這篇文章就是介紹了thinkphp項目部署到Linux服務器上報錯“模板不存在”的解決方法,感興趣的小伙伴們可以參考一下2016-04-04