我正在一个逐字符处理utf-8字符串的项目,但是我找不到在C ++中以这种方式处理UTF-8字符串的方法。
我需要的是
非常欢迎使用任何C ++(无论14年11月11日)功能或库。
不使用Boost的其他要点。我倾向于开发没有外部依赖的工具。
答案 0 :(得分:1)
C ++以开箱即用的Unicode支持非常差而臭名昭著。因此最好的选择是使用ICU之类的库或boost。
友善建议:
我倾向于在没有外部依赖的情况下开发工具
您需要证明此声明的合理性,否则,如果这是您的任意规则,则您将自己限制于此。像语言一样,库也是工具。需要分析使用哪种工具,并权衡不利因素。
答案 1 :(得分:1)
您的意思是,使用代码点(而不是实际的char
-即字节)?除了上述答案的一小部分。我建议您先阅读specs on how UTF-8 works,然后再阅读"UTF-8 Everywhere" manifesto,再阅读look here – it is a nice example of how to build a UTF-8 code point iterator。了解东西的实际工作原理总是很高兴的,尤其是当它是软件的重要组成部分时。虽然您最终肯定会使用ICU:-)
答案 2 :(得分:0)
您可以使用drwxr-xr-x 1 me 197121 0 Oct 21 14:35 ./
drwxr-xr-x 1 me 197121 0 Oct 20 17:11 ../
drwxr-xr-x 1 me 197121 0 Oct 21 14:35 .git/
drwxr-xr-x 1 me 197121 0 Oct 21 14:36 .idea/
-rw-r--r-- 1 me 197121 9963 Oct 21 15:02 agreement.html
-rw-r--r-- 1 me 197121 17 Oct 21 15:02 contact.html
-rw-r--r-- 1 me 197121 14027 Oct 21 15:02 documents.html
-rw-r--r-- 1 me 197121 17048 Oct 21 15:02 form.html
-rw-r--r-- 1 me 197121 11060 Oct 21 15:02 index.html
-rw-r--r-- 1 me 197121 4921 Oct 21 15:02 slideshow.html
drwxr-xr-x 1 me 197121 0 Oct 21 15:02 static/
(也可以使用.git/
)来处理Unicode
在 https://www.geeksforgeeks.org/wide-char-and-library-functions-in-c/ 中,是Wide Chars
另请参阅 I18N 和cf https://www.cprogramming.com/tutorial/unicode.html
这样的国际化标准