当选择UTF-32时,对于平台相关的endian,libiconv将正确转换,但将0xfeff BOM前缀为输出流。这会引起一些麻烦。
当选择UCS-4时,没有BOM被写入,但是在我的系统上它转换为‘大端’,这恰好不是我的系统的特性。
是否有任何建议,如何转换为UTF-32/UCS-4与平台相关的恩典,而不需要手动删除BOM?
发布于 2016-10-20 09:36:30
iconv ( glibc实现和GNU libiconv实现)都支持指定固定endianness的编码名称:
请注意,这些编码中的字符串最好不要传输到其他机器,否则缺乏BOM将导致问题。
发布于 2015-08-05 05:38:18
如果不指定字节顺序,则默认值始终是大端点。若要使用当前平台的字节顺序,请使用特殊的UCS-4-INTERNAL (或UCS-2-INTERNAL)编码。
https://stackoverflow.com/questions/31823682
复制相似问题