Yup... I'm too used to x86 Windows development. On Fri, Jan 14, 2011 at 12:57 PM, David Wimsey <[email protected]> wrote:
> Its important to note that wchar_t != UTF16, it is a native type that can > even be a single byte (and is on some 8 bit platforms). > > You can't blindly stick UTF16 into a wchar_t, as you've found wchar_t on > unix varients is UTF32 with native byte ordering. On Windows it happens to > be UTF16 with native byte ordering so you can stuff UTF16LE directly into a > (x86 based) Windows machines without problems, but that won't work on a ARM > or MIPS based CE machine. Likewise, blindly copying UTF32LE into a wchar_t > on Linux for x86 will work fine, but the code won't work on a Linux machine > on a MIPS processor. It might work on ARM as ARM will go both ways and I > presume the Linux guys used LE byte ordering but thats just a guess. > > > On Jan 13, 2011, at 6:44 PM, Bevan Collins wrote: > > On Debian sizeof(wchar_t) is indeed 4. Thanks Jonah! > > On Fri, Jan 14, 2011 at 12:39 PM, Jonah Petri <[email protected]> wrote: > >> I can't say for sure - but check sizeof(wchar_t) on debian. If it's 4, >> then that's your answer. Just a hunch! >> >> -Jonah >> >> On Jan 13, 2011, at 6:17 PM, Bevan Collins wrote: >> >> Please tell me what I am doing wrong: >> >> #include <libxml/encoding.h> >> #include <wchar.h> >> >> int main() >> { >> xmlCharEncodingHandlerPtr utf16Enc = xmlFindCharEncodingHandler("UTF-16"); >> wchar_t* url = L"http://atest.com"; >> xmlBufferPtr in = xmlBufferCreateStatic(url, wcslen(url) * 2); >> xmlBufferPtr out = xmlBufferCreate(); >> >> int rc = xmlCharEncInFunc(utf16Enc, out, in); >> printf("rc=%d url=%s\n", rc, (char*)out->content); >> >> xmlBufferFree(in); >> xmlBufferFree(out); >> >> return 0; >> } >> >> on Windows with version libxml2-2.7.7 I get: >> rc=16 url=http://atest.com >> >> on i386 Debian with version libxml2-2.7.8 I get: >> rc=16 url=h >> >> It looks like on Debian that it has simply copied the input buffer into >> the output buffer: >> url[0] = 'h' >> url[1] = '\0' >> url[2] = 't' >> ... >> >> >> Thanks. >> _______________________________________________ >> xml mailing list, project page http://xmlsoft.org/ >> [email protected] >> http://mail.gnome.org/mailman/listinfo/xml >> >> >> > _______________________________________________ > xml mailing list, project page http://xmlsoft.org/ > [email protected] > http://mail.gnome.org/mailman/listinfo/xml > > >
_______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
