Home > Article > Backend Development > Reasons and solutions for garbled characters written into txt files by PHP [Summary Sharing]
In PHP, writing text files is a common task. However, when writing text files, you may encounter garbled characters. This article will introduce you how to solve the problem of garbled characters when writing text files in PHP.
When using PHP to write a text file, if the file content contains non-ASCII characters (such as Chinese characters), you may encounter garbled characters. The specific manifestation is that the content displayed in the text file does not match the expected, or garbled characters appear when reading the text file. This problem is very common and needs to be taken seriously.
The following is a simple example:
$file = 'test.txt'; $content = '写入一个中文字符'; $file_handle = fopen($file, 'w'); fwrite($file_handle, $content); fclose($file_handle);
In this example, we write the string "write a Chinese character" into the text file "test.txt". This code works fine in most cases. However, if you encounter garbled characters when opening the text file "test.txt", then you need to solve the problem.
When writing text files with PHP, if you use the default encoding format (such as ANSI encoding), then when writing non-ASCII characters, It is easy to cause garbled code problems. This is because ANSI encoding only supports English characters and a small number of special characters, and cannot correctly encode other characters (such as Chinese characters). Therefore, other encoding formats need to be used.
To solve the garbled problem of PHP writing text files, there are two solutions:
UTF-8 is a universal encoding format that can be used to encode characters in various languages. When writing text files, using UTF-8 encoding can effectively avoid garbled characters.
The following is an example:
$file = 'test.txt'; $content = '写入一个中文字符'; $file_handle = fopen($file, 'w'); fwrite($file_handle, utf8_encode($content)); fclose($file_handle);
In this example, we use the utf8_encode function to convert the $content string from the default encoding to UTF-8 encoding. In this way, we can safely write strings to text files without worrying about encountering garbled characters.
If you need to use the specified encoding format to encode the text file, you can specify the encoding format when opening the file. We can do this using PHP’s iconv() function.
The following is an example:
$file = 'test.txt'; $content = '写入一个中文字符'; $encoding = 'GBK'; $file_handle = fopen($file, 'w'); fwrite($file_handle, iconv('UTF-8', $encoding, $content)); fclose($file_handle);
In this example, we convert the $content string from UTF-8 encoding to $encoding encoding (GBK encoding is used here), and then Write to text file.
When using PHP to write text files, garbled characters are a common problem. To solve this problem, we can use UTF-8 encoding or specify an encoding format to encode the file content. No matter which method you choose, you can effectively avoid garbled characters when PHP writes text files.
The above is the detailed content of Reasons and solutions for garbled characters written into txt files by PHP [Summary Sharing]. For more information, please follow other related articles on the PHP Chinese website!