Recently, when I was using PHP to write files, I encountered a strange problem, that is, the written content was garbled. After some searching and trying adjustments, I finally found a solution, and now I’m going to share it with you.
First you need to confirm the encoding method. The default encoding method of PHP is ISO-8859-1, and most Chinese encoding methods are UTF-8 . Therefore, you need to add the following code at the beginning of the file:
header('Content-type:text/html;charset=utf-8');
This line of code will tell the browser to use UTF-8 encoding to parse the document.
If the file written is not a plain text file, but an HTML or XML file, you need to set the file encoding method. You can use the following code:
header('Content-type:text/html;charset=utf-8'); $file = "example.html"; file_put_contents($file, $data); if ($file == "example.html") { exec("iconv -f utf-8 -t utf-8//IGNORE \"$file\" > \"$file.utf8\""); unlink($file); rename("$file.utf8", $file); }
This code will convert the file encoding to UTF-8 and remove all non-UTF-8 characters.
If the above two methods cannot solve the problem, you can try to modify the PHP.ini file and set the default encoding method to UTF-8 . The specific operations are as follows:
Search for "default_charset" in the PHP.ini file and modify its value to "UTF-8", as shown below:
default_charset = "UTF-8"
After modification, restart the Apache server , it will take effect.
To sum up, the problem of garbled characters when writing files is mainly caused by different encoding methods. It can be solved by confirming the encoding method, setting the file encoding or modifying the PHP.ini file. I hope this article can help everyone solve similar problems.
The above is the detailed content of How to solve garbled characters when writing php files. For more information, please follow other related articles on the PHP Chinese website!