繁体   English   中英

如何计算以任意字符集编码的字符串中的字符数

[英]How to count characters in a string encoded in an arbitrary character set

给定一个std::string其中包含以任意但已知的字符集编码的文本。 用C ++计算字符的最简单方法是什么? 它应该能够处理组合字符和Unicode代码点之类的事情。

有这样的东西会很高兴:

std::string test = "éäöü";
std::cout << test.size("utf-8") << std::endl;

不幸的是,C ++的生活并不容易。 :)

对于Unicode,我看到可以使用ICU库: Unicode字符串的跨平台迭代(使用ICU计算字母)

但是有更普遍的解决方案吗?

我担心它取决于特定的编码。 如果你使用UTF-8(我真的不明白为什么你不应该),你可以使用UTF8-CPP

看起来他们有这样的功能:

::std::string test = "éäöü";
auto length = ::utf8::distance(test.begin(), test.end());
::std::cout << length << "\n"; // should print 4.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM