因为你提到WideCharToMultiByte我会假设你正在处理Windows.
"从unicode文件中读取内容...找到一种将数据转换为ASCII的方法"
这可能是个问题.如果将Unicode转换为ASCII(或其他遗留代码页),则会遇到损坏/丢失数据的风险.由于您正在"处理unicode发布版本",因此您需要读取Unicode 并保留 Unicode.
所以你的最终缓冲区必须是wchar_t(或者WCHAR,或者CStringW同样的东西).
所以你的文件可能是utf-16,或utf-8(utf-32非常罕见).对于utf-16,结束也可能很重要.如果有一个物料清单可以帮助很多.
快速步骤:
wopen,或_wfopen作为二进制文件wchar_twith WideCharToMultiByte和CP_UTF8wchar_t数组和_swabwchar_t数组,你就完成了另外(如果您使用较新的Visual Studio),您可以利用MS扩展_wfopen.它可以将编码作为模式的一部分(类似于_wfopen(L"newfile.txt", L"rw, ccs=<encoding>");编码为UTF-8或UTF-16LE).它还可以根据BOM检测编码.
警告:跨平台是有问题的,wchar_t可以是2或4个字节,转换例程不可移植...
有用的链接:
| 归档时间: |
|
| 查看次数: |
6051 次 |
| 最近记录: |