【发布时间】:2010-06-01 21:26:14
【问题描述】:
如何对两个 UTF-8 编码的子字符串执行不区分大小写的比较?本质上,我正在寻找 UTF-8 的 strnicmp 函数。
【问题讨论】:
标签: c++ utf-8 case-insensitive string-comparison
如何对两个 UTF-8 编码的子字符串执行不区分大小写的比较?本质上,我正在寻找 UTF-8 的 strnicmp 函数。
【问题讨论】:
标签: c++ utf-8 case-insensitive string-comparison
各种 Unicode 脚本中的大小写转换规则非常困难,它需要大量的大小写转换表。您自己无法做到这一点,您需要一个图书馆。 ICU就是其中之一。
【讨论】:
strcoll 应该知道区域设置并正确处理 UTF8,至少如果它是区域设置的默认编码。如果不是,我仍然不知道。就像一种解决方法一样,您可以将多字节字符串转换为 wchars (mbrtowc),然后使用 wcscasecmp,不幸的是它是 GNU 扩展,不是标准库的一部分……也许没那么有用。
【讨论】: