91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決php5.4以下版本json不支持不轉義內容中文的問題

發布時間:2021-09-03 19:18:49 來源:億速云 閱讀:192 作者:chen 欄目:開發技術

這篇文章主要介紹“怎么解決php5.4以下版本json不支持不轉義內容中文的問題”,在日常操作中,相信很多人在怎么解決php5.4以下版本json不支持不轉義內容中文的問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么解決php5.4以下版本json不支持不轉義內容中文的問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

本文實例講述了php5.4以下版本json不支持不轉義內容中文的解決方法。分享給大家供大家參考。具體分析如下:

寫ERP接口的時候遇到JAVA方接收這種json_encode后的內容

復制代碼 代碼如下:

{"orderCode":"1401160935542399","creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"}


其中"creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"為中文,目前我們用的是UTF8的。但是JAVA方接收這種的時候自動把轉義后的中文轉回成中文的,那簽名計算方式是按這個來的,簽名自然對不上了。

查了PHP手冊,5.4以下的不能不轉義中文,但是我們服務器上的PHP版本是5.3的,于是用PHP模擬了一個JSON方法。

復制代碼 代碼如下:

//模擬joson中文不轉義
if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
    function json_encode_ex($var) {
        return json_encode($var, JSON_UNESCAPED_UNICODE);
    }
} else {
    function json_encode_ex($var) {
        if ($var === null)
            return 'null';

        if ($var === true)
            return 'true';

        if ($var === false)
            return 'false';

        static $reps = array(
            array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"', ),
            array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"', ),
        );

        if (is_scalar($var))
            return '"' . str_replace($reps[0], $reps[1], (string) $var) . '"';

        if (!is_array($var))
            throw new Exception('JSON encoder error!');

        $isMap = false;
        $i = 0;
        foreach (array_keys($var) as $k) {
            if (!is_int($k) || $i++ != $k) {
                $isMap = true;
                break;
            }
        }

        $s = array();

        if ($isMap) {
            foreach ($var as $k => $v)
                $s[] = '"' . $k . '":' . call_user_func(__FUNCTION__, $v);

            return '{' . implode(',', $s) . '}';
        } else {
            foreach ($var as $v)
                $s[] = call_user_func(__FUNCTION__, $v);

            return '[' . implode(',', $s) . ']';
        }
    }
}

用的時候直接當內置函數用就行。json_encode_ex(array('釣魚島'=>'中國的'));還支持多維數組。

到此,關于“怎么解決php5.4以下版本json不支持不轉義內容中文的問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峨县| 兴城市| 潞西市| 彭州市| 新田县| 丹棱县| 永嘉县| 卓资县| 皮山县| 怀化市| 莆田市| 合作市| 射洪县| 扎兰屯市| 龙州县| 乳源| 徐州市| 新密市| 武隆县| 治多县| 霍州市| 锡林浩特市| 富锦市| 铁岭县| 海伦市| 如皋市| 绍兴县| 温州市| 股票| 和静县| 商南县| 尼木县| 神农架林区| 余庆县| 广丰县| 舟山市| 措勤县| 嘉荫县| 咸阳市| 盐山县| 中山市|