日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

php中json_encode中文编码问题分析

發(fā)布時(shí)間:2025/5/22 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中json_encode中文编码问题分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

眾所周知使用json_encode可以方便快捷地將對(duì)象進(jìn)行json編碼,但是如果對(duì)象的屬性中存在著中文,問(wèn)題也就隨之而來(lái)了。
json_encode會(huì)將中文轉(zhuǎn)換為unicode編碼

例如:'胥'經(jīng)過(guò)json_encode處理后變?yōu)?#39;\u80e5',最終的json中中文部分被替換為unicode編碼。我們要解決的就是將對(duì)象轉(zhuǎn)換為json并保證對(duì)象內(nèi)部的中文在json中仍然是以正常的中文出現(xiàn),現(xiàn)在看來(lái)只使用json_encode是不能達(dá)到目的的。
  我的解決方法:先將類(lèi)中的中文字段進(jìn)行url編碼(urlencode),然后再對(duì)對(duì)象進(jìn)行json編碼(jsonencode),最后url解碼(urldecode)json,即最終的json,里面的中文依舊是那個(gè)中文!
測(cè)試代碼如下:

<?php class myClass { public $item1 = 1; public $item2 = '中文'; function to_json() { //url編碼,避免json_encode將中文轉(zhuǎn)為unicode $this->item2 = urlencode($this->item2); $str_json = json_encode($this); //url解碼,轉(zhuǎn)完json后將各屬性返回,確保對(duì)象屬性不變 $this->item2 = urldecode($this->item2); return urldecode($str_json); } } $c = new myClass(); echo json_encode($c); echo '<br/>'; echo $c->to_json(); echo '<br/>'; echo json_encode($c); echo '<br/>'; echo json_encode('胥'); ?>

程序輸出結(jié)果:

{"item1":1,"item2":"\u4e2d\u6587"}
{"item1":1,"item2":"中文"}
{"item1":1,"item2":"\u4e2d\u6587"}
"\u80e5"

希望本文起到拋磚引玉的作用,收集大家更好的解決方法。

轉(zhuǎn)載于:https://www.cnblogs.com/study100/p/3245553.html

總結(jié)

以上是生活随笔為你收集整理的php中json_encode中文编码问题分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。