On May 16, 2011, at 2:23 PM, Shawn Steele wrote:

> I’m having some (ok, a great deal of) confusion between the DOM Encoding and 
> the JavaScript encoding and whatever.  I’d assumed that if I had a web page 
> in some encoding, that it was converted to UTF-16 (well, UCS-2), and that’s 
> what the JavaScript engine did it’s work on.  I confess to not having done 
> much encoding stuff in JS in the last decade.
>  
> In UTF-8, individually encoded surrogates are illegal (and a security risk).  
> Eg: you shouldn’t be able to encode D800/DC00 as two 3 byte sequences, they 
> should be a single 6 byte sequence.  Having not played with the js 
> encoding/decoding in quite some time, I’m not sure what they do in that case, 
> but hopefully it isn’t illegal UTF-8.  (You also shouldn’t be able to have 
> half a surrogate pair in UTF-16, but many things are pretty lax about that.)

I don't know enough about DOM behavior as I probably should, but the 
implication of the DOMString spec. is that if HTML source code contains a text 
element with supplemental characters (using any encoding recognized by a 
browser) then if the text of that element is accessed from JavaScript it will 
see each supplemental character as two JavaScript character that taken together 
are the UTF-16 encoding of the original supplemental character.  I'm not 
proposing any changes in that regard.

There is a chicken and egg issue here.  The DOM will never evolved to directly 
support non UTF-16 encoded supplemental characters unless ECMAScript first 
provides such support. It may take 20 years to get there but that clock won't 
even start until ECMAScript provides the necessary support.

Allen



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to