strnicmp相当于UTF-8?

时间:2010-06-01 21:26:14

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

我使用什么来对两个UTF-8编码的子字符串执行不区分大小写的比较?基本上,我正在为UTF-8寻找strnicmp函数。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

strcoll应该能够识别区域设置,并且至少在它是区域设置的默认编码时才能正确处理UTF8。如果不是,我仍然不知道。像解决方法一样,你可以将多字节字符串转换为wchars(mbrtowc),然后使用wcscasecmp,遗憾的是它是一个GNU扩展,而不是标准库的一部分......不太可能有用。