首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将西里尔词赋给CString

将西里尔词赋给CString
EN

Stack Overflow用户
提问于 2021-04-16 12:04:49
回答 2查看 142关注 0票数 1

我正在开发一个使用MFC和VisualC++库的遗留代码。我需要创建一个可以保存西里尔词的CString向量,如下面的示例代码片段所示:

代码语言:javascript
复制
std::vector<CString> vecContainingCyrillicWords;
vecContainingCyrillicWords.push_back(_T("English Words"));
vecContainingCyrillicWords.push_back(_T("Русские слова"));

问题:如下面的调试结果所示,没有正确设置西里尔词。如何将西里尔词赋给CString类型的变量

EN

回答 2

Stack Overflow用户

发布于 2021-04-16 12:16:45

调试器没有正确显示它这一事实并不意味着它没有被正确地分配给CString

确切地说,CString中的内容取决于您是否为Unicode设置。检查MBCS符号或UNICODE符号是在编译时定义的。如果不是Unicode,则字符是一个字节ASCII值,当您要显示/打印字符时,必须确保使用正确的代码页。调试器似乎不正确地显示非英语字符,可能将Unicode解释为一个字节字符,或者根据欧洲代码页(可能是1252)解释单个字节字符的高ASCII值,而不是支持西里尔字母的代码页(通常为1251)。后一种可能性是在我看来是什么样子,但如果不知道您是否定义了Unicode,我就无法确定。

票数 1
EN

Stack Overflow用户

发布于 2021-04-19 12:26:04

问题在于文件编码类型。该文件已经用utf-8编码保存,因此,我期望得到正确的结果。但我必须将文件编码更改为UTF8 with BOM,然后将正确的值推送到向量中。

也是由@Simon在上面的评论中建议的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67124923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档