我正在尝试将wchar_t *转换为char *。这是我的代码:
size_t result = wcstombs(returned, str, length + 1);
if (result == (size_t)-1) {
int error = errno;
}
它确实失败了,并且错误填写了92(ENOPROTOOPT) - 协议不可用。
我甚至尝试过设置语言环境:
setlocale(LC_ALL, "C");
还有这个:
setlocale(LC_ALL, "");
我很想用静态演员阵容抛出角色!
答案 0 :(得分:0)
似乎问题是源字符串是用非标准编码编码的(每个宽字符有两个ASCII字符),这在调试器中看起来很好,但内部显然很糟糕。产生的错误代码显然没有记录,但它等同于根本无法解码所述文本。