gpt4 book ai didi

c++ - 使用 Unicode 的 CString 格式返回错误的字符

转载 作者:行者123 更新时间:2023-11-30 01:29:00 24 4
gpt4 key购买 nike

我正在尝试使用以下代码格式化 CString:

const wchar_t * wch = L"μ";
CString str;
str.Format(_T("%c"), wch[0]);

然而,str 的值不是“μ”,而是实际设置为“¼”。当我调试它时,它会将 wch 识别为“μ”。

此外,如果我这样做:

const wchar_t * wch = L"μ";
CString str;
str.Format(_T("%s"), wch);

它给 str 赋值为“¼”。 (好像没有显示,但是¼后面应该有一个上标L。)

编译器设置为使用 unicode,在程序中的其他地方我可以调用 _T() 并使其正确求值,只是在格式化 CString 时不行。

我做错了什么?

*编辑:* 进行更多调试表明 CString Format 方法的 arglist 收到值“Ü_”

最佳答案

我认为您需要使用“长”字符或字符串格式说明符——因此 %lc 用于 wchar_t%ls%S 作为字符串。

关于c++ - 使用 Unicode 的 CString 格式返回错误的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657832/

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