Как преобразовать строку wchar_t из верхнего регистра в нижний регистр в С++?
Строка содержит смесь японских, китайских, немецких и греческих символов.
Я думал об использовании towlower ...
http://msdn.microsoft.com/en-us/library/8h19t214%28VS.80%29.aspx
.. но в документации сказано, что:
Преобразование регистра towlower зависит от локали. При этом изменяются только символы, относящиеся к текущей локали.
Редактировать: Может быть, мне следует описать, что я делаю. Я получаю поисковый запрос Unicode от пользователя. Первоначально он был в кодировке UTF-8, но я конвертирую его в широкоформатный (могу ошибаться в формулировке). Мой отладчик (VS2008) правильно отображает японские, немецкие и т. д. символы в «переменных быстрых просмотрах». Мне нужно просмотреть еще один набор данных в Unicode и найти совпадения строки поиска. Хотя это не проблема для меня, когда поиск чувствителен к регистру, более проблематично сделать это без учета регистра. Мой (возможно, наивный) подход к решению проблемы состоял бы в том, чтобы преобразовать все входные и выходные данные в нижний регистр, а затем сравнить их.
é
,Õ
) или нескольких отдельных символов ('e
,~O
). Правильная нормализация (NFC/NFD/NFKC/NFKD) перед сравнением жизненно важна в вашей ситуации. - person Abel   schedule 23.10.2009