在 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/