选择 UTF-32 时,对于平台相关的字节序,libiconv 正确转换但在输出前添加 0xfeff BOM 前缀 溪流。这会引起一些麻烦。
选择UCS-4时,没有写BOM,但在我的系统上 转换为“big endian”,这恰好不是 我系统的字节顺序。
有没有关于如何转换为 UTF-32/UCS-4 的建议? 具有依赖于平台的字节序,而没有 手动删除 BOM?
最佳答案
如果您不指定字节顺序,则默认始终为大端。要使用当前平台的字节顺序,请使用特殊的 UCS-4-INTERNAL
(或 UCS-2-INTERNAL
)编码。
关于c++ - 如果输出是平台字节序,ICONV 写入 BOM 会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823682/