c - C 中的 UTF-16 到 UTF-8

标签 c csv utf-8 utf-16

在 C 中,我需要编写一个程序来解析以 UTF-16 编码的 CSV 文件,对信息进行处理,并使用处理后的信息生成新的 UTF-16 csv 文件。

截至目前,我所有的程序所做的就是将 CSV 文件 (UTF-16) 的内容加载到一 block 内存中,我现在需要以某种方式处理这个 UTF-16 内存块,但我并不完全确定我将如何在不转换它的情况下这样做,因为我什至不能在它上面使用 strlen 或类似的东西,因为它有所有的 NULL

如何将 UTF-16 转换为 UTF-8,然后再转换回 UTF-16?我假设我需要使用 fseek 获取原始 CSV (UTF-16) 文件的总文件大小,而不是。但即便如此,我该如何进行转换?

顺便说一句,我这样做的原因是因为我目前正在处理 WonderWare 的一些 CSV 格式 (UTF-16) 的“转储”文件。

最佳答案

如果您使用的是 *nix 系统,您可以使用 iconv

示例:iconv -f UTF16 -t UTF8 file.csv

关于c - C 中的 UTF-16 到 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079519/

相关文章:

c - 在 C 中打印特定数据类型的值?

java - 使用Java计算Google存储桶中的文件行数

c# - 在 C# 中读/写 CSV/制表符分隔文件

php - UTF 8 字符串删除除换行符外的所有不可见字符

c - realloc导致程序崩溃

c - #define 在 C 中使用 if-else 逻辑

java - java中循环效率低下

php - 从mysql 5.5降级到5.1,utf-8 General_ci

Java:为什么 "\uFFFF"在 UTF-8 中转换为 [-17,-65,-65]?

将缓冲区解释为结构的正确、可移植的方法