我昨天问了一个类似的问题,但认识到我需要以不同的方式重新调整它。
简而言之:在 Windows 上的 C++ 中,当字符串为 unicode 格式(宽字符、wchar_t)并且我不知道字符串的语言时,如何对字符串(在另一个字符串内)进行不区分大小写的搜索. 我只想知道大海捞针是否存在。针的位置与我无关。
背景:我有一个包含大量电子邮件正文的存储库。消息使用不同的语言(日语、德语、俄语、芬兰语;您可以命名)。所有数据都是 Unicode 格式,我将它加载到我的 C++ 应用程序中的宽字符串 (wchar_t) 中(主体已被 MIME 解码,因此在我的调试器中我可以看到实际的日文、德文字符)。我不知道邮件的语言,因为电子邮件不包含该详细信息,而且单个电子邮件正文可能包含来自多种语言的字符。
我正在寻找类似 wcsstr 的东西,但能够以不区分大小写的方式进行搜索。我知道在不知道文本语言的情况下,不可能 100% 正确地从大写字母转换为小写字母。我想要一个在 99% 的情况下都可行的解决方案。
我正在使用带有 C++、STL 和 Boost 的 Visual Studio 2008。