search
HomeBackend DevelopmentPHP Tutorialjson versions below php5.4 do not support the solution of not escaping Chinese content, _PHP tutorial

Json versions below php5.4 do not support the solution of not escaping Chinese content,

The example in this article describes the solution to the problem that json in versions below php5.4 does not support unescaped Chinese content. Share it with everyone for your reference. The specific analysis is as follows:

When writing the ERP interface, I encountered the JAVA side receiving this json_encoded content

Copy the code The code is as follows:
{"orderCode": "1401160935542399","creator":"u751fu6d3bu7528u54c1u6d4bu8bd5u5c0fu5c4b"}

Among them, "creator":"u751fu6d3bu7528u54c1u6d4bu8bd5u5c0fu5c4b" is Chinese, and currently we use UTF8. But when the JAVA side receives this, it automatically converts the escaped Chinese back to Chinese. The signature calculation method is based on this, and the signature will naturally not be correct.

I checked the PHP manual and found that Chinese characters must be escaped under 5.4, but the PHP version on our server is 5.3, so I used PHP to simulate a JSON method.

Copy code The code is as follows:
//Simulate joson Chinese without escaping
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) . ']';
}
}
}

When using it, just use it as a built-in function. json_encode_ex(array('Diaoyu Island'=>'China')); also supports multi-dimensional arrays.

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/942408.htmlTechArticleThe solution for json versions below php5.4 does not support Chinese content without escaping. The example in this article tells the story of php5.4 The following versions of json do not support the solution of not escaping Chinese content. Share it with everyone...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何将windows 7的语言设置为中文如何将windows 7的语言设置为中文Dec 21, 2023 pm 10:07 PM

有些朋友可能会在安装系统时不小心设置成了英文,结果所有界面都变成了英文,看都看不懂。其实我们可以在控制面板中设置语言,将语言更改为中文,下面就一起来看一下更改的方法吧。win7如何更改语言为中文1、首先点击屏幕左下角的按钮,然后选择“ControlPanel”2、找到“Clock,Language,andRegion”下的“Changedispalylanguage”3、点击下方“English”就可以在下拉菜单中选择简体中文了。4、确定之后点击“Logoffnow”注销并重启电脑。5、回来之后

如何将Win10电脑的语言设置为汉语?如何将Win10电脑的语言设置为汉语?Jan 05, 2024 pm 06:51 PM

有时候我们再刚刚入手安装好电脑系统之后发现系统时英文的,遇到这种情况我们就需要把电脑的语言改成中文,那么win10系统里面该怎么把电脑的语言改成中文呢,现在就给大家带来具体的操作方法。win10电脑语言怎么改成中文1、打开电脑点击左下角的开始按键。2、点击左侧的设置选项。3、打开的页面选择“时间和语言”4、打开后,再点击左侧的“语言”5、在这里就可以设置你要的电脑语言。

放弃中国市场?《万智牌》官宣:今后不再推出中文实体卡放弃中国市场?《万智牌》官宣:今后不再推出中文实体卡Feb 23, 2024 pm 06:46 PM

2月23日消息,官方威世智今日宣布,自《摩登新篇3》之后将不再生产葡萄牙语版产品,自《Bloomburrow》开始停止生产中文版实体卡牌产品。完整公告如下:万智牌实体卡牌产品语言调整通知万智牌作为一款全球知名游戏,一直深受全球玩家的喜爱。今年,我们遗憾地做出这个艰难的决定:在《摩登新篇3》之后将不再生产葡萄牙语版产品,自《Bloomburrow》开始停止生产中文版实体卡牌产品。我们深知这对热爱万智牌的中国和葡萄牙玩家是一次重大的变化,但这一决策并不是对玩家热情的否定。请大家相信,我们将继续在这两

Win11系统语言如何改成中文Win11系统语言如何改成中文Jun 29, 2023 pm 01:15 PM

  Win11系统语言如何改成中文?近期有用户刚给电脑安装了最新的Win11系统,但是在使用中发现系统语言为英文,自己使用起来很吃力,为此有没有什么方法可以将系统语言改成中文呢?方法很简单,下面我们来看看这篇Win11系统语言设置为中文的方法吧。  Win11系统语言设置为中文的步骤  1、首先我们进入齿轮按钮的settings,然后找到其中的Time打开时间和语言。  2、在时间和语言中点击左边栏的Language选项,然后在右侧点击Addalanguage。  3、接着在上方搜索框输入chi

怎么将eclipse语言设置为中文怎么将eclipse语言设置为中文Jan 04, 2023 pm 03:50 PM

eclipse语言设置为中文的方法:1、打开浏览器找到语言包下载地址,并将最新的安装包地址复制;2、打开eclipse,点击“help”,然后点击安装新的插件;3、点击“Add”,在Location中粘帖网址;4、在下拉菜单中找到简体中文包,进行勾选,点击Next等待安装;5、重启eclipse即可。

解决中文乱码问题的matplotlib方法解决中文乱码问题的matplotlib方法Jan 13, 2024 pm 02:49 PM

解决matplotlib中文乱码问题的方法,需要具体代码示例Matplotlib是一个常用的用于数据可视化的Python库,可以生成各种图表和图形。然而,对于中文用户来说,经常会遇到一个问题,就是生成的图表中的中文字符显示乱码。这个问题可以通过一些简单的方法来解决。本文将介绍一些常见的解决方法,并附上相关的代码示例,帮助读者解决这个烦人的问题。方法一:设置字

正确在matplotlib中显示中文字符的方法正确在matplotlib中显示中文字符的方法Jan 13, 2024 am 11:03 AM

在matplotlib中正确地显示中文字符,是很多中文用户常常遇到的问题。默认情况下,matplotlib使用的是英文字体,无法正确显示中文字符。为了解决这个问题,我们需要设置正确的中文字体,并将其应用到matplotlib中。下面是一些具体的代码示例,帮助你正确地在matplotlib中显示中文字符。首先,我们需要导入需要的库:importmatplot

解决Ubuntu系统中WPS无法输入中文的问题该做什么?解决Ubuntu系统中WPS无法输入中文的问题该做什么?Dec 30, 2023 pm 12:55 PM

虽然Linux有LibreOffice,但是对微软的office兼容不是很好,有些排版会出现问题。而几年前,金山也开发了Linux版的WPS,不过在Ubuntu上使用,无法直接输入中文,这咋弄才可以让WPS正常输入中文呢1、打开WPS的文档,右上角的输入法已经是中文了,但是实际输入的时候,只能输入英文字母,出不了中文2、在终端输入:sudogedit/usr/bin/wps3、从第二行加上:exportXMODIFIERS="@im=fcitx"exportQT_IM_MODULE=&

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools