php数组使用json_encode函数中文被编码成null的原因和解决办法

json格式在开发中用的十分广泛。在php中json_encode函数可以直接将数组转成 json格式,十分方便。但是有可能你在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。php数组使用json_encode函数中文被编码成null的原因是转义gbk 或者别的编码时,中文被忽略了。一般出现在文档编码或者输出的内容编码是非UTF-8时,也就是说,GBK或者GB2312的中文,就会出现编码失败的现象。
php数组使用json_encode函数中文被编码成null的原因和解决办法,如果你的程序是采用utf-8编码,请确保文件保存为utf-8 无bom格式,如果你的程序是gbk的,可以先转成utf-8编码后在使用json_encode函数。


知道了这一点,以下的代码就好写了。这里给出一个Demo,备忘。 


$array = array('title'=>iconv('gb2312','utf-8','这里是中文标题'),'body'=>'abcd...'); 
echo json_encode($array); 
编码以后的内容就成了这样:
{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PHP中,json_encode函数默认会将输出的JSON字符串中的双引号进行转义,以确保字符串的正确性。如果你需要输出的JSON字符串中不包含转义的双引号,有几种方法可以实现。 第一种方法是使用json_encode函数的参数选项,将JSON_UNESCAPED_SLASHES选项传递给json_encode函数,可以防止斜杠被转义。示例代码如下: ```php $data = ["label" => "data"]; $json = json_encode($data, JSON_UNESCAPED_SLASHES); ``` 这样,输出的JSON字符串中就会保留双引号,并且不会对斜杠进行转义。 第二种方法是在使用json_encode之后,对输出的JSON字符串进行替换。你可以使用str_replace函数来替换转义的双引号。示例代码如下: ```php $data = ["label" => "data"]; $json = json_encode($data); $json = str_replace('\"', '"', $json); ``` 这样,输出的JSON字符串中的双引号就不会被转义。 请注意,如果你的JSON字符串中包含特殊字符,比如换行符或制表符,你可能还需要使用其他的替换方法来确保输出的JSON字符串正确无误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [php数组进行json_encode键如何不带引号?](https://blog.csdn.net/weixin_39842029/article/details/116362982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [PHP中让json_encode不自动转义斜杠“/”的方法](https://download.csdn.net/download/weixin_38658471/12977923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值