Home > Article > Backend Development > What to do if php outputs garbled characters
Solution to garbled output of php: 1. Use the mb_convert_encoding() function to transcode; 2. Set the encoding method of the database to utf8; 3. Modify the encoding to utf8 when saving the file.
Recommended: "PHP Video Tutorial"
How to solve garbled characters when PHP appears
1. Analysis of the causes of garbled characters
1. When saving a file, the file has its own file encoding, which is Chinese characters or other Chinese languages. What encoding is used to store it
2. When outputting, specify the encoding for the content. For example, when inputting in the form of a web page,
3. When retrieving data from the database, I don’t know the character set set by the database.
4. Take Chinese characters as an example. Chinese characters are also encoded. One Chinese character gbk requires two characters, while utf8 requires The three characters
mentioned above are the potential causes of garbled characters. I will arrange and combine them now.
The first case is the inconsistency between saving the file and the display encoding
If you use utf8 encoding when saving the file, and when outputting the web page, you set the gbk encoding, this will appear Garbled characters,
In the second case, the characters stored in the saved file and the database are inconsistent.
If the encoding of the saved file is the same as the encoding displayed on the web page, garbled characters still appear. For example, you When saving the file, use utf8 encoding, and your database uses the gb2312 character set to store data.
The third situation is that the code has been garbled, and you still think there is no code.
When you find that the code is garbled, when you change the encoding of the saved file, the utf8 situation is good. When you change the If it is replaced with gbk, the code will be garbled, but you still think it is good. This is also the reason why garbled characters appear. This happens often.
The fourth situation is that the database is originally garbled.
The character set of the data, the encoding of the saved file, and the web page display encoding are all the same, but garbled characters still appear. In most cases, When the data is entered into the database, it becomes garbled, which is quite troublesome.
Second, my method of solving garbled characters has been tried and tested every time.
I named this method the Pao Ding Jie Niu Method. Ha ha. Database, save file encoding, the encoding when displaying must be consistent, and the database shall prevail
First, the encoding of the database and saved file is utf8, and the web page display is gb2312. At this time, we need to change The display is encoded
The second type, the database and web page display are both utf8, used to save files The one is gb2312. At this time, you should pay attention to one thing. It is not possible to directly change the encoding of the saved file. Before changing the encoding, copy the contents of the file first. After the encoding is changed, paste the copied content back. , this is OK.
The third method is that the database uses utf8, and the saving file and display encoding is gb2312. At this time, you can use the function that comes with the program to convert the data taken out from the database. Code converter, convert utf8 to gb2312 so that you don't have to change the file's own encoding and display encoding. Taking PHP as an example, mb_convert_encoding($string,”gb2312″,”utf8″);
The fourth type, database garbled code, is caused by the difference between the data itself and the database storage encoding when data is entered. For example: the storage encoding of the database is utf8. When the data is stored in the database, add a mysql_query("set names utf8;"); Well, I have encountered two,
1) The font that appears is garbled and turned into strange characters
2) It is just a blank page, check As for the source code, there is nothing. In situations like this, sometimes I think it is caused by garbled code. Right-click the page, view the properties, change the encoding and you will know whether the blank page is caused by garbled characters.
The above is the detailed content of What to do if php outputs garbled characters. For more information, please follow other related articles on the PHP Chinese website!