gpt4 book ai didi

c - wcstombs 不能正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:32 27 4
gpt4 key购买 nike

我有一个 utf-8 文件,我可以使用 widechar 函数正常处理它。

但是现在我需要以多字节形式转换和使用它们,而且我正在努力让它工作。

printf("%s\n",setlocale(LC_CTYPE, "")); //English_United States.1252
_setmbcp(_MB_CP_LOCALE);
FILE *f = NULL;
f = _wfopen(L"data.txt", L"r,ccs=UTF-8");
wchar_t x[256];
fwscanf(f, L"%ls", x); //x = L"một"
char mb[256];
int l = wcstombs(mb, x, 256); //mb = "m?t"

我做错了什么?

最佳答案

在您的文本文件中,您有字符 (注意字符下方的点)而不是 ô

字符ô 存在于codepage 1252 中,但字符 没有,因此 wcstombs 将其转换为 ?

如果您的 UTF-8 编码文本文件包含例如西里尔字符或希腊字符,您将遇到同样的问题。

唯一的解决方案是不使用代码页 1252 中没有表示的字符。

关于c - wcstombs 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539360/

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