Re: Check the byte sequence of a file to tell if it is UTF-8 without the BOM using PHP ?
| From: | Office) | Date: | Sun, 22 May 2011 07:03:51 +0000 |
| Subject: | Re: Check the byte sequence of a file to tell if it is UTF-8 without the BOM using PHP ? | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-313065@lists.php.net to get a copy of this message | ||
Dear Peter,
But my point was different.
If you DO NOT have any BOM of a File does
mb_detect_encodin
can detect the file type by scanning the whole file ??
Thanks
Eli
On 22/05/2011 09:53, Peter Lind wrote:
On 22 May 2011 08:17, Eli Orr (Office)<eli.orr@logodial.com> wrote:-- Best Regards, *Eli Orr* CTO & Founder *LogoDial Ltd.* M:+972-54-7379604 O:+972-74-703-2034 F: +972-77-3379604 Plaut 10, Rehovot, Israel Email: _Eli.Orr@LogoDial.com_ Skype: _eliorr.com_Hi Adam, I have a prof that the XML advise does not work in real cases I had. We are using XMLs in our system but when you edit the XML with a text editor and put the XML heading of UTF-8 <?xml version="1.0" encoding="UTF-8"?> it DOES NOT assure the text inside is encoded in UTF-8 so but maybe (many cases) t other iso-xxx method.The point of the header is telling readers what encoding is used. Of course that means errors are possible - setting the header is not magic, it doesn't change the rest of the file. You need to make sure the contents of the file match the encoding from the header when you make XML documents. Anyway, from your perspective, the header is an indication but not a foolproof way of figuring encoding out.My question was for a function that scan the bytes of the file and decided WITHOUT the BOM heading. I mean by checking the bytes sequence in the file. I claim that WITHOUT a BOM it might be impossible to assure it is UTF-8 encoding which is a whole escape sequence logic that may convert one character into one, two or three character.http://se.php.net/manual/en/function.mb-detect-encoding.php - the first comment should be interesting to you. ***** If you try to use mb_detect_encoding to detect whether a string is valid UTF-8, use the strict mode, it is pretty worthless otherwise. <?php$str = 'áéóú'; // ISO-8859-1 mb_detect_encoding($str, 'UTF-8'); // 'UTF-8' mb_detect_encoding($str, 'UTF-8', true); // false?> **** Regards Peter