【发布时间】:2010-08-27 18:02:11
【问题描述】:
如何在 C++ 中计算 UTF-8 文件中的 unicode 个字符?也许如果有人愿意向我展示一个“独立”方法,或者使用http://icu-project.org/index.html 的简短示例。
编辑:一个重要的警告是我需要建立每个字符的计数,所以我不是在计算字符的总数,而是在计算一组字符的出现次数.
【问题讨论】:
-
您要计算字符数还是代码点数?根据您的编辑,听起来您也将关心规范化。所有的答案(在撰写本文时)都是关于计算代码点的。
-
@Logan:你所说的“标准化”是什么意思?
-
洛根是对的。链接:unicode.org/reports/tr15
-
@Dervin Thunk 可以通过多种方式“拼写”同一个逻辑字符。例如,“带有重音的拉丁小写字母 a”可能有一个代码点,或者您可以使用组合字符“拉丁小写字母 a”、“带有重音符号”的想法来使用多个代码点。规范化是指您选择字符的这两种(或可能更多)表示中的一种作为规范表示,然后在开始计数之前检查并确保字符串中的所有重音符号都使用单一表示。