When performing php json to array operations, garbled characters are often encountered. The root of this problem is the inconsistency of character sets.
The default character set of Java, Python and other languages is utf-8, while the default character set of php is ISO-8859-1. Therefore, when processing json strings, if the character set of the json string is utf-8, and the character set of php is ISO-8859-1, then the converted array will be garbled.
Let’s take a look at how to solve this problem.
1. Specify the character set of the json string
When we know the character set of the json string, we can solve the problem by specifying the character set.
Sample code:
$json_str = iconv('utf-8','ISO-8859-1',$json_str); //将json字符串的字符集从utf-8转换为ISO-8859-1 $arr = json_decode($json_str, true); //将json字符串转换成数组
2. Change the php default character set
When we cannot know the character set of the json string, or when we need to process a large number of json strings, PHP default character set can be changed. In this way, there will be no garbled characters when processing any json string.
The way to change the default character set of php is to modify it in the php.ini file. We can complete this operation through the following steps:
Enter the following command in the terminal to open the php.ini file:
sudo vi /etc/php/7.3/apache2/php.ini
In the php.ini file, find the following two lines, uncomment and modify the character set to utf-8:
;default_charset = "iso-8859-1" default_charset = "utf-8"
After saving the php.ini file, you need to restart Apache for the changes to take effect:
sudo service apache2 restart
After changing the php default character set, we can test whether the json string can be parsed correctly. Sample code:
$arr = json_decode($json_str, true); //将json字符串转换成数组
Summary
Converting json to array garbled characters is a common problem, but it is also an easy problem to solve. We can solve this problem by specifying the character set of the json string or changing the PHP default character set. Either way, you need to understand the concept of character sets in order to do the conversion correctly.
The above is the detailed content of What to do if php json is converted to array garbled code. For more information, please follow other related articles on the PHP Chinese website!