PHP JSON_ENCODE 不转义中文汉字的方法

2018-09-26 15:14:23

php从数据库查询出来的数据,json_encode以后,保存到本地.json文件


可气的是文件内的编码,基本都是以\u开头的汉子。

这就完蛋了,虽然不影响使用,但是强迫症的我肯定是不满意的。

  1. 是也不一定100%不影响直接使用

  2. 关键是占内存啊。



尝试了php的 吧 \u 等字符串,转换成中文的。试了很多不管用啊。

表示绝望,因为大家都管用。



后来发现不是查询数据库编码的问题。是json_encode的问题。


PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据。

网上很多,但是其实都是错误的,正确的方法是在json_encode 中加入一个参数 JSON_UNESCAPED_UNICODE 

 json_encode($data, JSON_UNESCAPED_UNICODE); //必须PHP5.4+


  • 2018-12-26 16:12:56

    nginx+php-fpm模式php内存泄漏探究

    这里要重点说一下第三步骤。第三步涉及到php-fpm进程生命周期的东西。一个php-fpm的生命周期大致是这样的:模块初始化(MINIT)-> 模块激活(RINIT)-> 请求处理 -> 模块停用(RSHUTDOWN) -> 模块激活(RINIT)-> 请求处理 -> 模块停用(RSHUTDOWN)……. 模块激活(RINIT)-> 请求处理 -> 模块停用(RSHUTDOWN)-> 模块关闭(MSHUTDOWN)。在一个php-fpm进程的生命周期里,会有多次的模块激活(RINIT)-> 请求处理 -> 模块停用(RSHUTDOWN)的过程。这个“请求处理”的大致过程是这样的:php读取相应的php文件,对其进行词法分析,生成opcode,zend虚拟机执行opcode。

  • 2019-01-01 21:38:51

    php使用curl设置超时的重要性

    网站登录不了,原因是没有可用的 PHP 子进程来响应新的请求了。这可能是是由于PHP-curl 没有设置超时时间引起的。

  • 2019-01-01 21:42:34

    php-fpm 启动参数及重要配置详解

    如果file_get_contents请求的远程资源如果反应过慢,file_get_contents就会一直卡在那里不会超时。我们知道php.ini 里面max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。真正能够控制 PHP 脚本最大执行时间的是 php-fpm.conf 配置文件中的request_terminate_timeout参数。