目錄
php5.4以下版本json不支持不转义内容中文的解决方法,
首頁 php教程 php手册 php5.4以下版本json不支持不转义内容中文的解决方法,

php5.4以下版本json不支持不转义内容中文的解决方法,

Jun 13, 2016 am 09:16 AM
php5.4 中文 解決方法

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('钓鱼岛'=>'中国的'));还支持多维数组。

希望本文所述对大家的php程序设计有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

印表機操作無法完成錯誤0x0000709 解決方法 印表機操作無法完成錯誤0x0000709 解決方法 Apr 20, 2024 pm 10:10 PM

印表機操作無法完成錯誤0x0000709 解決方法

VSCode 設定中文:完全指南 VSCode 設定中文:完全指南 Mar 25, 2024 am 11:18 AM

VSCode 設定中文:完全指南

黑鯊手機持續開啟關機循環怎麼辦?解決方法大揭秘! 黑鯊手機持續開啟關機循環怎麼辦?解決方法大揭秘! Mar 25, 2024 am 09:36 AM

黑鯊手機持續開啟關機循環怎麼辦?解決方法大揭秘!

解決PHP寫入txt檔案中文亂碼的技巧 解決PHP寫入txt檔案中文亂碼的技巧 Mar 27, 2024 pm 01:18 PM

解決PHP寫入txt檔案中文亂碼的技巧

Deepseek官網入口訪問指南 解決無法登錄的常見問題 Deepseek官網入口訪問指南 解決無法登錄的常見問題 Feb 19, 2025 pm 04:30 PM

Deepseek官網入口訪問指南 解決無法登錄的常見問題

寶可夢晶燦鑽石明亮珍珠可達鴨子擋路解決方法 寶可夢晶燦鑽石明亮珍珠可達鴨子擋路解決方法 Apr 01, 2024 pm 02:33 PM

寶可夢晶燦鑽石明亮珍珠可達鴨子擋路解決方法

PHP技巧:一行程式碼實作將數字轉為中文大寫 PHP技巧:一行程式碼實作將數字轉為中文大寫 Mar 26, 2024 am 11:09 AM

PHP技巧:一行程式碼實作將數字轉為中文大寫

實用技巧:如何利用PHP中的trim函數處理中文空格 實用技巧:如何利用PHP中的trim函數處理中文空格 Mar 27, 2024 am 11:27 AM

實用技巧:如何利用PHP中的trim函數處理中文空格

See all articles