You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Dominik Stadler (JIRA)" <xe...@xml.apache.org> on 2006/02/21 14:41:27 UTC

[jira] Commented: (XERCESC-1305) Problem with XMLString::transcode() on Solaris

    [ http://issues.apache.org/jira/browse/XERCESC-1305?page=comments#action_12367189 ] 

Dominik Stadler commented on XERCESC-1305:
------------------------------------------

What we finally did to work around this problem for us is to add a separate IconvLCP88591Transcoder and IconvLCP885915Transcoder in xercesc/util/Transcoders/Iconv and detect a local encoding of 8859-1 or 8859-15 and use these Transcoders in this case.

I'll attach the new files based on Xerces 2.6, if anybody is interested.

BTW the attached files also fix http://issues.apache.org/jira/browse/XERCESC-1167 by adding support for ISO-8859-15

> Problem with XMLString::transcode() on Solaris
> ----------------------------------------------
>
>          Key: XERCESC-1305
>          URL: http://issues.apache.org/jira/browse/XERCESC-1305
>      Project: Xerces-C++
>         Type: Bug
>   Components: Utilities
>     Versions: 2.6.0, 2.4.0
>  Environment: Solaris 8, Forte 8 Solaris C++ Compiler
>     Reporter: Dominik Stadler
>  Attachments: XercesTestcase.h, xerces-1305.zip
>
> We have a problem on Sun Solaris where it seems that XMLString::transcode() does not correctly convert characters from the ISO-8859-1 character-set to the Unicode/XMLCh-representation. 
> We have ISO-8859-1 set as local codepage through setting the environment variable LC_ALL. 
> When we call XMLString::transcode() for characters above hex-code 127, we get invalid unicode characters back. 
> The same application works fine on Linux.
> This is a small testcase that shows the problem:
> The output on Solaris is:
> ------------------- start of Solaris output -------------------------
> Converted the character, result:
> 00 23  00 54  00 45  00 53  00 54  00 23
> ------------------- end of Solaris output -------------------------
> This is wrong, as the unicode representation of the pound-sign(£) is 0x00A3, not 0x0023!
> On Linux the output is correct:
> ------------------- start of Linux output -------------------------
> Converted the character, result:
> 00 A3  00 54  00 45  00 53  00 54  00 A3
> ------------------- end of Linux output -------------------------
> I will attach a testcase that shows the problem.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org