gpt4 book ai didi

无法使用 fopen 读取 UTF8 编码的文件(文件, "r,ccs=UTF-8")

转载 作者:可可西里 更新时间:2023-11-01 10:07:59 42 4
gpt4 key购买 nike

在使用 fopen 打开文件时,我使用 ccs=encoding(如 MSDN 中所述)将编码设置为 UTF-8。

当写入文件时它工作正常

wchar_t* unicode_text = L"こんにちは";
FILE* f = fopen("C:\\test.txt", "w,ccs=UTF-8");
fwprintf(f, L"%s\n", unicode_text);
fclose(f);

当我在文本编辑器中打开文件时,unicode 会正常显示。但是当尝试从创建的文件中读取时,未检测到 UTF-8 编码:

wchar_t buffer[1000];
FILE* f = fopen("C:\\test.txt", "r,ccs=UTF-8");
fgetws(buffer, 1000, f);
fclose(f);

MessageBoxW(0, buffer, 0, 0);

这会在消息框中显示“ããã«ã¡ã¯”。

为什么会这样? ccs=UTF-8 只在写文件打开时有效吗?

最佳答案

文档暗示 UTF-8 编码仅可用于写入(强调我的):

In Visual C++ 2005, fopen supports Unicode file streams. A flag specifying the desired encoding may be passed to fopen when opening a new file or overwriting an existing file, like this:

请注意,“读取现有文件”明显不存在。

关于无法使用 fopen 读取 UTF8 编码的文件(文件, "r,ccs=UTF-8"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10633157/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com