c++ - 如果输出是平台字节序,ICONV 写入 BOM 会出现问题

标签 c++ c unicode iconv

选择 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/

相关文章:

iphone - Objective-C:unichar 与 char

c++ - Windows 应用商店应用程序 - 添加项目引用警告

c - Recv 调用获取空数据

c - 将给定链表的反向存储到另一个链表中

java - 处理 UTF-8 编码

pdf - 将文档从 PDF 转换为文本时如何处理 unicode 字符编码问题

c++ - 在 visual studio 中使用 QChart

c++ - 如何在 Windows 应用程序中启用常用控件

c++ - 创建范围自定义 View 函数(operator() 和 operator|)

c - 使用指针类型转换时值发生莫名其妙的变化