【问题标题】:strnicmp equivalent for UTF-8?strnicmp 等效于 UTF-8?
【发布时间】:2010-06-01 21:26:14
【问题描述】:

如何对两个 UTF-8 编码的子字符串执行不区分大小写的比较?本质上,我正在寻找 UTF-8 的 strnicmp 函数。

【问题讨论】:

    标签: c++ utf-8 case-insensitive string-comparison


    【解决方案1】:

    各种 Unicode 脚本中的大小写转换规则非常困难,它需要大量的大小写转换表。您自己无法做到这一点,您需要一个图书馆。 ICU就是其中之一。

    【讨论】:

      【解决方案2】:

      strcoll 应该知道区域设置并正确处理 UTF8,至少如果它是区域设置的默认编码。如果不是,我仍然不知道。就像一种解决方法一样,您可以将多字节字符串转换为 wchars (mbrtowc),然后使用 wcscasecmp,不幸的是它是 GNU 扩展,不是标准库的一部分……也许没那么有用。

      【讨论】:

      • strcoll 不区分大小写吗?有没有办法指定要比较的最大字符数?
      猜你喜欢
      • 2014-05-16
      • 2012-05-07
      • 2023-01-04
      • 2014-02-22
      • 2013-10-04
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多