Home  >  Article  >  Backend Development  >  What to do if php json is converted to array garbled code

What to do if php json is converted to array garbled code

PHPz
PHPzOriginal
2023-04-27 16:39:13597browse

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:

  1. Open the php.ini file

Enter the following command in the terminal to open the php.ini file:

sudo vi /etc/php/7.3/apache2/php.ini
  1. Modify the default character set

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"
  1. Restart Apache

After saving the php.ini file, you need to restart Apache for the changes to take effect:

sudo service apache2 restart
  1. Test

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn