Issue status update for http://smalltalk.gnu.org/project/issue/113 Post a follow up: http://smalltalk.gnu.org/project/comments/add/113

Project:      GNU Smalltalk
Version:      <none>
Component:    Base classes
Category:     bug reports
Priority:     normal
Assigned to:  Unassigned
Reported by:  elmex
Updated by:   bonzinip
Status:       active
Attachment:   http://smalltalk.gnu.org/files/issues/gst-encoding-lazy.patch 
(594 bytes)

EF-BF-BE is the unicode "byte order mark" (BOM) encoded in UTF-8.  It
was born as a way to distinguish big- and little-endian UTF-16.  Since
it's not really a character, Iconv tries to strip it when converting to
a UnicodeString, but it is failing to do so in this case.

Now, under Mac OS X I get the expected result, under Linux I get yours.
The reason is that my Mac is big-endian, so Iconv produces big-endian
UTF-16, while Linux produces little-endian UTF-16.  Since the default
encoding of UTF-16 is big-endian, the Mac happens to get the right
thing, while Linux messes up the encoding.  So later on the "pipe
peekFor: $<16rFEFF>" statement to strip the BOM does not work.

The attached patch fixes this by making EncodedString look for a BOM
when retrieving the encoding, rather than when setting it.




_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to