我在 VC++ MFC 中将 unicode 字符转换为小写字母时遇到问题。我在 CString 变量中有 unicode 字符。所以,使用英语 MakeLower() 工作正常,我得到小写字母。但它无法将 unicode 字符转换为小写。我确实尝试了STL算法变换:
std::string data = "ИИИЛЛЛЛ"; //保加利亚字符
std::transform(data.begin(), data.end(), data.begin(), ::tolower);
但它无法加载 unicode 字符,我得到“???”符号代替 unicode 字符。
您能否让我知道是否有 unicode 字符的解决方案。我不喜欢使用 boost 库。提前致谢!
如果您的项目使用 Unicode 字符集(项目属性),CString::MakeLower()
应该可以 - 注意,这不会转换字符串的内容,它返回一个新字符串,请参阅这篇 MSDN 文章 http://msdn.microsoft.com/en-us/library/eyxcxazf%28v=vs.100%29.aspx:
CString s1(_T("ABC")), s2;
s2 = s1.MakeLower();
ASSERT(s2 == _T("abc"));
EDIT: CString::MakeLower() 确实更改了字符串的内容,它还返回对转换后的字符串的引用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)