std::wstring::length()将为您提供字符数,其中字符定义为wstring对象的原子单位,即 a wchar。characters这就是标准所指的含义(有关标准中该词使用的更多详细信息,请参阅这篇文章)。
然而,当涉及到 Unicode 字符时,一个是否wchar对应一个 Unicode 字符取决于wstring. 如果使用 UTF-16(通常(但不一定)是这种情况),则wchar仅针对基本多语言平面(即源自 ISO-8859 的所有字符集以及大多数常用的 CJK 的字符集),一个字符才会对应于一个 Unicode 字符。字符,但不是一些更外来的(例如文言)字符)(*)。在这种情况下,如果您希望获得所有Unicode 字符的正确字符计数,则需要使用支持 Unicode 的库(例如 ICU),或者自己编写代码。
(*)如果使用组合字符,则会出现其他问题,正如 @\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89 正确指出的那样。正确计算这些也最好使用适当的库来完成。
\n| 归档时间: |
|
| 查看次数: |
8418 次 |
| 最近记录: |