1. 程式人生 > >PHP json_decode不轉義中文

PHP json_decode不轉義中文

預設情況下PHP的 json_decode 方法會把特殊字元進行轉義,還會把中文轉為Unicode編碼形式。

這使得資料庫檢視文字變得很麻煩。所以我們需要限制對於中文的轉義。

對於PHP5.4+版本,json_decode函式第二個引數,可以用來限制轉義範圍。

要限制中文,使用JSON_UNESCAPED_UNICODE引數。

json_encode($a, JSON_UNESCAPED_UNICODE);
對於PHP5.3版本,可以先把ASCII 127以上的字元轉換為HTML數值,這樣避免被json_decode函式轉碼:
function my_json_encode($arr)
{
        //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding
        array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); });
        return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');

}

相關推薦

PHP json_decode轉義中文

預設情況下PHP的 json_decode 方法會把特殊字元進行轉義,還會把中文轉為Unicode編碼形式。這使得資料庫檢視文字變得很麻煩。所以我們需要限制對於中文的轉義。對於PHP5.4+版本,json_decode函式第二個引數,可以用來限制轉義範圍。要限制中文,使用JS

PHP json_encode() 轉義斜線

json_encode()對變數進行JSON編碼,返回JSON形式的字串,或者失敗時返回false。一次再對一個連結地址進行JSON編碼時,返回的字串總是有問題,發現</a>裡的斜線被轉義了,導致連結結構異常。#看了PHP文件,發現json_encode()的第二

json轉義中文轉義斜線

1、顯示中文! return json_encode(['code' => $code, 'message' => $message, 'data' => $data], JSON_U

PHP pathinfo 支援中文 手動編寫解析路徑字串函式

pathinfo 在中文出現在首字的時候不支援用 自己的函式搞定: 如 "/home/ledmedia/TEST_BMP_1/視訊1.mp4"; 用pathinfo就會出問題 function my_path_info($filepath)      {   

php json 中文轉義 & 轉義中文

JSON_UNESCAPED_UNICODE   private function decodeUnicode($str){ return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function( '$matches',

php實現json_encode()中文字元轉義

在專案中,php提供的介面使用json_encode()函式,在處理中文的時候, 中文都會被編碼成Unicode碼, 變成不可讀的, 類似”\u***”的格式,如果想漢字不進行轉碼,這裡提供三種方法 1.php版本在5.3及以下自己寫函式實現中文不轉義 function json_encod

PHP json_encode 中文轉義

在寫Android專案時,遇到php返回的json資料裡的中文都是 \u+數字的unicode資料 有兩個辦法 一是應該在php開頭就設定連線的MySQL設定為 UTF-8編碼 //連線Mysql資料庫 $conn=mysqli_connect('Mysql的ip地址',

PHP json_decode中文轉義的問題

預設情況下PHP的 json_decode 方法會把特殊字元進行轉義,還會把中文轉為Unicode編碼形式。在有些情況下不希望進行這種轉義。 對於PHP5.4+版本,json_decode函式第二個引數,可以用來限制轉義範圍。要限制中文,使用JSON_UNESCAPED_U

PHP JSON_DECODE/JSON_ENCODE中文內容為NULL或亂碼

<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?> 輸出結果 obj

PHP URL中包含中文,查看時提示404

not pla 再次 ros index oca 參考 utf cnblogs 使用Microsoft Web Platform在IIS裏配置安裝一個wordpress,一切順利。 當添加一片文章時,自動生成URL類似如下: http://localhost/wordp

php讀取到指定的php.ini配置

class 路徑 pre spa conf opts nbsp log 修改 啟動時指定路徑 解決方案一:修改 /etc/init.d/php-fpm 文件 1 # 在這行命令上添加 指定的配置路徑 2 php_opts="--fpm-config $php_fpm_

pdf.js在國際化的時候,顯示中文的解決辦法

重新 存在 cnblogs cal 英文 ima view oca 技術分享 在項目中使用了pdf實現在線預覽功能,開始工具欄中一直都是英文的,在view.js中設置了也不起作用,偶然發現了問題所在 當我把網站發布到iis上的時候,用google瀏覽器的審查元素功能的審核發

Ubuntu16.04下安裝elasticsearch+kibana實現php客戶端的中文分詞

lba 實例 exc common adding creat 啟動服務 uid dbms 1.下載安裝elasticsearch和kibana wget https://artifacts.elastic.co/downloads/elasticsearch/elasti

php filesize能統計臨時文件

文件名 str stat led failed 得到 但是 xampp 文件 文件上傳時要統計上傳的文件的大小,使用filesize(‘文件名‘)的時候,其中 的文件名就得是文件在本地的臨時文件但是會出現一個錯誤顯示成 filesize(): stat failed fo

(轉)php數字金額轉中文大寫金額

func 字符串 獲取字符串長度 依次 reac 字符串長度 單位 ever -- function floatohz($value){ $result=‘‘; $v_a=array(‘分‘,‘角‘,‘零‘,‘塊‘,‘十‘,‘,百‘,‘千‘,‘萬‘,‘十‘

C程序fork進程導致PHP執行退出

printf alfred 文件描述 pre 處理 demo 文件描述符 time_t 狀態 /********************************************************************* *

PHP界面顯示中文亂碼

html htm nbsp ade har 編輯 菜單 代碼 ext 1.在代碼開始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件編碼問題 點擊編輯器的菜單:“文件”->“另存為”,可

PHP產生重復隨機數的5個方法總結

num srand func www end php turn href 發生器 無論是Web應用,還是WAP或者移動應用,隨機數都有其用武之地。在最近接觸的幾個小項目中,我也經常需要和隨機數或者隨機數組打交道,所以,對於PHP如何產生不重復隨機數常用的幾種方法小結一下

JavaSE8基礎 String getBytes 將中文的字符串轉換成字節數組

es2017 logs 字符 public res bsp clas 源碼 技術分享 os :windows7 x64 jdk:jdk-8u131-windows-x64 ide:Eclipse Oxygen Release (4.7.0)

php json_decode 返回空

字符串拼接 rip 字符 類型 處理 htm decode 這樣的 作用 在做小程序時,有比較的復雜的數據需要傳到後臺處理,一般會用字符串拼接,然後在後臺接口裏解析就可以得到方便自己處理的數據類型; 測試的時候發現,數據可以傳到後臺,但是用json_decode 解析時返回