gpt4 book ai didi

C++ Unicode 问题

转载 作者:行者123 更新时间:2023-11-28 07:44:49 25 4
gpt4 key购买 nike

我在处理 unicode 转换时遇到了一些麻烦。

以下代码将其输出到我的文本文件中。你好??哦

std::string test = "HELLO"; 
std::string output;
int len = WideCharToMultiByte(CP_OEMCP, 0, (LPCWSTR)test.c_str(), -1, NULL, 0, NULL, NULL);
char *buf = new char[len];
int len2 = WideCharToMultiByte(CP_OEMCP, 0, (LPCWSTR)test.c_str(), -1, buf, len, NULL, NULL);
output = buf;
std::wofstream outfile5("C:\\temp\\log11.txt");
outfile5 << test.c_str();
outfile5 << output.c_str();
outfile5.close();

但如您所见,输出只是测试变量的 unicode 转换。这怎么可能?

最佳答案

在第一次测量调用后检查 LEN 是否正确。通常,您不应将 test.c_str() 转换为 LPCWSTR。 'test' 是 'char'-string 而不是 'wchar_t'-wstring。您可以将其转换为 LPCSTR - 注意缺少“W”。 WinAPI 对此有所区分。如果您想在其中保留 widechars,您真的应该使用 wstring。是的,在重新阅读您的代码后,test 应该是一个 wstring,然后您可以投它安全地发送到 LPCWSTR。

关于C++ Unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15102407/

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