选择UTF-32时,对于平台相关的endian,libiconv 正确转换但前缀为0xfeff BOM到输出 流。这会造成一些麻烦。
选择UCS-4时,没有写入BOM但是在我的系统上 转换为' big endian'这恰好不是 我的系统的字节顺序。
有没有建议如何转换为UTF-32 / UCS-4 与平台相关的endianess没有 手动删除BOM?
答案 0 :(得分:2)
如果您没有指定字节顺序,则默认值始终为big endian。要使用当前平台的字节顺序,请使用特殊的UCS-4-INTERNAL
(或UCS-2-INTERNAL
)编码。
答案 1 :(得分:0)
iconv(glibc实现和GNU libiconv实现)支持指定固定字节序的编码名称:
请注意,这些编码中的字符串最好不要传输到其他计算机,否则缺少BOM会导致问题。