Re: Is it possible to save a file with UTF-8 encoding and no BOM using PHP?

From: Date: Sat, 23 Apr 2005 04:54:32 +0000
Subject: Re: Is it possible to save a file with UTF-8 encoding and no BOM using PHP?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-213714@lists.php.net to get a copy of this message
Jon M. wrote:
"Richard Lynch" <ceo@l-i-e.com> wrote in message news:4029.67.184.124.249.1114151797.squirrel@www.l-i-e.com...
On Thu, April 21, 2005 5:07 pm, Jon M. said:
I am trying to have a file that I generated with PHP saved as UTF-8 without the BOM (Byte Order Mark). Does PHP do anything like this? I am a beginner with PHP, but very technically experienced otherwise. I'm talking about the FILE encoding here -just to be clear. e.g. fopen("what_ever_file", "a+") now I want PHP save the file itself with UTF-8, NOT system default. I have searched for hours to find an answer, but have not found any info on the subject. Does PHP have any ability to create a text file saved in UTF-8 encoding???
Maybe I'm just being dumb, but I think if you UTF-8 encode your data, and http://php.net/fwrite it, you're gonna get what you want... Dunno about the Byte-Order-Mark part, but I guess you could strip it out of the UTF-8 encoded data before writing, if you wanted to. -- Like Music? http://l-i-e.com/artists.htm
That was the first thing I tried, and it doesn't seem to work (it always saves in windows default encoding). Unless I missing something about what you can do with fwrite. Did you actually test that before you replied, and found that it would? If so, how? The Byte Order Mark is a part of the binary file that is written, how would one go about stripping it out?? BTW, note to PHP developers: If "fwrite" had a "encoding" parameter, e.g. "UTF-8", that would be REALLY handy.
Strings in PHP are binary-safe and character-encoding neutral. fwrite doesn't have a clue what it is writing, it just writes what is in memory. I'd question why you would want to strip the BOM. Any modern system deals with the byte-order-mark correctly. But you can simply strip it manually if it is present in the first 2 bytes before your fwrite if you really need to get rid of it. -Rasmus

« previous php.general (#213714) next »