STL排序是否支持UTF8 ?



STL排序函数是否支持对包含UTF-8字符的名称进行字母排序?说出德语/法语中的名字?

这完全取决于您如何存储UTF-8字符以及比较器的外观。sort函数对它排序的元素是完全不可知的。

但是你的意思可能是"…当存储在char数组中",然后答案是,因为char s将存储给定UTF-8字符的单个字节,而不是逻辑字符。sort函数对由迭代器分隔的元素进行排序。sort仅在迭代器/它们所引用的元素知道它们所包含的数据时才起作用。对于编码UTF-8的char s数组,情况并非如此。

这里的"正确"解决方案是将UTF-8输入解析为适当的(规范化的)Unicode代码点数组,对它们进行排序,并转换回UTF-8。

所需要的只是适当的比较函数。您可能可以在ICU - Unicode国际组件中找到一个。具体看一下排序。

c++0x支持UTF

我假设您指的是标准模板库-答案是否定的。

没有一个标准库具有文本字符串类型。有char数组,-但这只是一个字节向量。有std::string,但这是一个字节串(或16位字,或类似的东西)基本上。它没有字符的概念,更不用说编码了。

最新更新