Hi Bruno, Bruno Haible <[EMAIL PROTECTED]> writes:
> Therefore I would recommend to use the mem_cd_iconveh function from the > 'striconveh' module, with FROMCODE = locale_charset() and TOCODE = > "UTF-16BE" or "UTF-16LE" (or vice versa). Or mem_iconveh you don't > want to reuse the conversion descriptors. That's what I was going to do, but the excerpt of `u16-conv-from-enc.c' that I quoted made me think that, e.g., "UTF-16BE" and "UTF-16LE" were only known to work on Glibc >= 2.2: /* Name of UTF-16 encoding with machine dependent endianness and alignment. */ #if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) # ifdef WORDS_BIGENDIAN # define UTF16_NAME "UTF-16BE" # else # define UTF16_NAME "UTF-16LE" # endif #endif Likewise, `u-conv-from-enc.h' contains alternate code for systems where `UTF_NAME' is undefined (i.e., typically on non-GNU systems). Therefore, `mem_iconveh ()' doesn't seem appropriate since there is AFAIUI no portable way to specify, say, "UTF-16{LE,BE}" as TO_CODESET... which led me to suggest that we might have to provide endianness-aware conversion procedures. Does it clarify things a bit? :-) Thanks, Ludovic.