php writes txt garbled characters

王林
Release: 2023-02-24 09:36:02
Original
4361 people have browsed it

php writes txt garbled characters

I believe many people have encountered garbled files when using PHP, whether they are written using fwrite or file_put_contents. Maybe you will try to solve it by encoding first, but the final result is often not ideal, even though we have converted it to UTF-8 encoding...

So what is the root cause? ? It just lacks the head BOM (of course, this definitely does not refer to the Js BOM).

BOM

Since BOM is mentioned, some students may not know much about this guy. Let me briefly explain it here. Veterans can skip it. When you use a program such as Notepad to save a text file in UTF-8 format under Windows, Notepad will add a few invisible characters (EF BB BF) in front of the file header, which is the so-called BOM (Byte order Mark). ).

is not limited to files saved in Notepad, as long as the opening of the file contains "EF BB BF" several invisible characters (the hexadecimal should be xEFxBBxBF, visible when editing the file in binary). This is like a convention. When the system sees this thing, it will think that your file is UTF-8 encoded.

This is why when the file does not have a BOM, the file you present to the user may be garbled.

PS: In fact, you can understand BOM as the charset attribute in HTML and the encoding attribute in XML, which serve as an identifier.

Solution:

So how to output BOM in PHP?

The answer is Output before all content is output:

print(chr(0xEF).chr(0xBB).chr(0xBF));
Copy after login

Of course, if you are generating a file, it may be the following two:

fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF));
file_put_contents($file, chr(0xEF).chr(0xBB).chr(0xBF));
Copy after login

The above content is for reference only!

Recommended tutorial: PHP video tutorial

The above is the detailed content of php writes txt garbled characters. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template