使用PHP json_encode时,如何避免哪些常见错误或陷阱?

2026-04-03 06:131阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计318个文字,预计阅读时间需要2分钟。

使用PHP json_encode时,如何避免哪些常见错误或陷阱?

在PHP中使用json_encode()和内置函数可以将PHP中的数据更好地与其他语言传递和使用。这个函数的功能是将数组转换成JSON数据存储格式:

php

1? PHP 2 $arr=array('name'=> 'Balla_兔子', 'age'=> 22);

使用PHP json_encode时,如何避免哪些常见错误或陷阱?

在PHP中使用 json_encode() 内置函数可以使用得PHP中的数据更好的与其它语言传递与使用。

这个函数的功能是将数组转换成json数据存储格式:

1 <?PHP 2 $arr=array('name'=>'Balla_兔子','age'=>22); 3 echo json_encode($arr4 ?>

输出结果:

1 {"name":"","age":22}

json_encode函数中中文被编码成null了,查了下资料,很简单,为了与前端紧密结合,json只支持utf-8编码。

我们可以用iconv函数转换下编码:

1 string iconv ( string $in_charset,$out_charset,1)">$str ) 2 Performs a character set conversion on the string str from in_charset to out_charset.//从in_charset编码转为out_charset,str为转换内容 array('name'=>iconv('gbk','utf-8','Balla_兔子'),1)">1 {"name":"Balla_\u934f\u65bf\u74d9","age":22}

在数组里所有中文在json_encode之后都不见了或者出现\u934f\u65bf\等。

解决方法是用urlencode()函数处理下,在json_encode之前,把所有数组内所有内容都用urlencode()处理,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

 

1 urlencode ( $str ) UrlEncode:将字符串以URL编码返回 返回值:字符串 1 <? 2 3 urlencode('Balla_兔子'),1)"> 4 5 $json=json_encode( 6 7 $result=json_decode($json,1)">true);//把json解码并转为数组 8 9 echo urldecode($result['name']); 10 11 ?>

输出结果:

1 Balla_兔子

 

标签:

本文共计318个文字,预计阅读时间需要2分钟。

使用PHP json_encode时,如何避免哪些常见错误或陷阱?

在PHP中使用json_encode()和内置函数可以将PHP中的数据更好地与其他语言传递和使用。这个函数的功能是将数组转换成JSON数据存储格式:

php

1? PHP 2 $arr=array('name'=> 'Balla_兔子', 'age'=> 22);

使用PHP json_encode时,如何避免哪些常见错误或陷阱?

在PHP中使用 json_encode() 内置函数可以使用得PHP中的数据更好的与其它语言传递与使用。

这个函数的功能是将数组转换成json数据存储格式:

1 <?PHP 2 $arr=array('name'=>'Balla_兔子','age'=>22); 3 echo json_encode($arr4 ?>

输出结果:

1 {"name":"","age":22}

json_encode函数中中文被编码成null了,查了下资料,很简单,为了与前端紧密结合,json只支持utf-8编码。

我们可以用iconv函数转换下编码:

1 string iconv ( string $in_charset,$out_charset,1)">$str ) 2 Performs a character set conversion on the string str from in_charset to out_charset.//从in_charset编码转为out_charset,str为转换内容 array('name'=>iconv('gbk','utf-8','Balla_兔子'),1)">1 {"name":"Balla_\u934f\u65bf\u74d9","age":22}

在数组里所有中文在json_encode之后都不见了或者出现\u934f\u65bf\等。

解决方法是用urlencode()函数处理下,在json_encode之前,把所有数组内所有内容都用urlencode()处理,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

 

1 urlencode ( $str ) UrlEncode:将字符串以URL编码返回 返回值:字符串 1 <? 2 3 urlencode('Balla_兔子'),1)"> 4 5 $json=json_encode( 6 7 $result=json_decode($json,1)">true);//把json解码并转为数组 8 9 echo urldecode($result['name']); 10 11 ?>

输出结果:

1 Balla_兔子

 

标签: