Я задал похожий вопрос вчера, но осознаю, что мне нужно перефразировать его по-другому.
Короче говоря:
В C ++ в Windows, как мне сделать поиск строки без учета регистра (внутри другой строки), когда строки в формате Юникод (широкий символ, wchar_t), и я не знаю язык строк. Я просто хочу знать, существует ли игла в стоге сена. Расположение иглы мне не подходит.
Справочная информация:
У меня есть хранилище, содержащее много электронных писем. Сообщения на разных языках (японский, немецкий, русский, финский; вы называете это). Все данные представлены в формате Unicode, и я загружаю их в широкие строки (wchar_t) в моем приложении C ++ (тела были декодированы MIME, поэтому в моем отладчике я могу видеть настоящие японские, немецкие символы). Я не знаю язык сообщений, так как сообщения электронной почты не содержат этой детали, также одно тело письма может содержать символы из нескольких языков.
Я ищу что-то вроде wcsstr, но с возможностью выполнять поиск без учета регистра. Я знаю, что невозможно сделать 100% правильное преобразование из верхнего регистра в нижний регистр, не зная языка текста. Я хочу решение, которое работает в 99% случаев, когда это возможно.
Я использую Visual Studio 2008 с C ++, STL и Boost.