[Home] [By Thread] [By Date] [Recent Entries]

  • From: Philippe Poulard <philippe.poulard@s...>
  • To: "Rudick, Tom" <tmrudick@m...>
  • Date: Thu, 20 Sep 2007 18:00:21 +0200

Rudick, Tom a écrit :
> If the HTTP headers do not indicate what the encoding of the document
> is, you must read the document (at least the first line) and figure out
> what the encoding is.  However, how is this accomplished?  If you don't
> know the encoding of the document to begin with, how can you read even
> the first line?
>  
> After reading this http://www.w3.org/TR/REC-xml/#sec-guessing, it seems
> that instead of reading what <?xml encoding="utf-8"?> has to say,
> parsers simply look at the first few octets of the document and compare
> it to several known encodings of the text <?xml.  Then, they just
> continue to read the rest of the document.

Not exactly : the first few octets will indicate if <?xml 
encoding="blah-blah"?> is coded on 1, 2, or even 4 bytes (for UCS) ; the 
charset of the sequence <?xml encoding="blah-blah"?> is limited to 
ASCII-7 bits, which is fortunately compatible with UTF-8, ISO-8859-1 and 
some others, and easily decodable if coded on 2 or 4 bytes, because the 
same sequence is mapped to ASCII-7 bits, whatever the number of bytes 
(zero-extension) ; for example :
Bits Encoding    Hex Dec Char
  7   US-ASCII     41  65  A                              1000001
  8   ASCII 8bits  41  65  A                             01000001
16   UCS-2        41  65  A                    00000000 01000001
32   UCS-4        41  65  A  00000000 00000000 00000000 01000001

So, the encoding can be read (if any)

I guess some parsers have additional heuristics for reading successfully 
the sequence <?xml encoding="blah-blah"?> ; maybe some try-catch to 
apply with the set of charset they know ?

-- 
Cordialement,

               ///
              (. .)
  --------ooO--(_)--Ooo--------
|      Philippe Poulard       |
  -----------------------------
  http://reflex.gforge.inria.fr/
        Have the RefleX !


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member