Nit*_*amk 6 c++ lowercase widestring
如何在C++中将wchar_t字符串从大写转换为小写?
该字符串包含日语,中文,德语和希腊字符的混合.
我想过使用towlower ......
http://msdn.microsoft.com/en-us/library/8h19t214%28VS.80%29.aspx
..但文件说:
towlower的案例转换是特定于语言环境的.只有与当前区域设置相关的字符才会被更改.
编辑:也许我应该描述我在做什么.我收到用户的Unicode搜索查询.它最初采用UTF-8编码,但我将其转换为widechar(我的措辞可能不对).我的调试器(VS2008)在"可变快速监视"中正确显示日语,德语等字符.我需要在Unicode中查看另一组数据并查找搜索字符串的匹配项.虽然当搜索区分大小写时,这对我来说没有问题,但是在不区分大小写的情况下更难以解决问题.我(可能是天真的)解决问题的方法是将所有输入数据和输出数据转换为小写,然后进行比较.
如果您的字符串包含所有这些字符,则代码集必须基于Unicode.如果正确实现,Unicode(第4章" 字符属性 ")定义字符属性,包括字符是大写还是小写映射,依此类推.
鉴于前言,towlower()
函数from <wctype.h>
是正确的工具.如果它不能完成这项工作,您将与您的供应商讨论QoI(实施质量)问题.如果您发现供应商没有响应,请查看备用库.在这种情况下,您可以考虑使用ICU(Unicode的国际组件).