PHP去除unicode續:json_encode以後,僅僅有文字,數字不見了的解決方法

接前文。http://blog.csdn.net/yanzi1225627/article/details/44985487 這麼處理了一段時間。確實沒發現問題。但近期發現了一個bug。比方輸入」我是123」, 這麼json_encode 以後。再 preg_replace 一下。就變成了」我是」,數字不見了。
糾結了一番,是這個替換的方法不正確。將原來的:php

preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))",$json) 

換成例如如下這句話,就ok了:json

preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))",$json2)

另外。假設php版本號夠高的話,仍是用json_encode(a,JSON_UNESCAPED_UNICODE)比較好。markdown

相關文章
相關標籤/搜索