php中文转化为英文,json转码_解决PHP的json_encode处理中文被转码为全英文的方法...
摘要 騰興網為您分享:解決PHP的json_encode處理中文被轉碼為全英文的方法,余額寶,視達網,千題庫,汽修寶等軟件知識,以及馬上行動,芝麻手,叉叉mt,中微家校通,雷鳥郵件,我在找你,pads2007,西伯利亞v3,文字類游戲,科領,戰爭之人突擊小隊2補丁,docx文檔,bridge,寧夏博物館,實時變聲等軟件it資訊,歡迎關注騰興網。最近使用json_encode轉換數組為json數據,儲存在數據庫里面,因為字段的長度個內容不確定,就只能使用這個方法了,但是使用json_decode解析為數組以后,卻出現了類 似”u590fu5a03u7684u8b...
最近使用json_encode轉換數組為json數據,儲存在數據庫里面,因為字段的長度個內容不確定,就只能使用這個方法了,但是使用json_decode解析為數組以后,卻出現了類
似”u590fu5a03u7684u8bf1u60d14u5979u7684u6280u5de7″,通過查詢百度,這應該是UCS-2編碼的字符串,那么如何轉換這個字符串呢?
其實在在php5.2以前的版本中做json_encode轉換的時候的時候。中文會被unicode編碼, php5.3加入了options參數, 5.4以后才加入JSON_UNESCAPED_UNICODE,這個參數,不需要做escape和unicode處理。 所以在5.4之前都需要對中文做個處理。
php5.4里面的處理
json_encode($str,?JSON_UNESCAPED_UNICODE);php5.4之前,有兩種方法處理
方法一
?function?encode_json($str){??????return?preg_replace("/u([0-9a-f] )/ie",?"iconv('UCS-2',?'UTF-8',?pack('H4',?'\\\\1'))",?$code);??}在實際應用中有個問題,部分字符會掉,不止為何,如字符串:”日期11.2″會被變成”日期.2″。
方法二
?function?encode_json($str)?{????return?urldecode(json_encode(url_encode($str)));??}function?url_encode($str)?{????if(is_array($str))?{????????foreach($str?as?$key=>$value)?{????????????$str[urlencode($key)]?=?url_encode($value);????????}??????}?else?{????????$str?=?urlencode($str);????}????return?$str;??}本站使用的是虛擬主機,就沒法修改php的版本了,所以就只能采用第一種方法了,不過方法確實還是有效果的。
方法三?function?decodeUnicode($str){??return?preg_replace_callback('/\\\\\\\\u([0-9a-f]{4})/i',???create_function(????'$matches',????'return?mb_convert_encoding(pack("H*",?$matches[1]),?"UTF-8",?"UCS-2BE");'???),???$str);}相關推薦
總結
以上是生活随笔為你收集整理的php中文转化为英文,json转码_解决PHP的json_encode处理中文被转码为全英文的方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BERT文本分类,代码超基础、超详细解析
- 下一篇: js正则表达式验证金额