【发布时间】:2011-11-09 19:14:48
【问题描述】:
我需要在 C 中处理 unicode 字符串。我听说 ICU 是适合使用的一组库,但我没有任何开始的运气。
所以我的问题:谁能提供一个好的初学者教程的链接,该教程在 C 中使用 unicode 字符串和 ICU
附:我已经安装了 libicu44(在 Ubuntu 11.04 下)。
【问题讨论】:
-
你需要对 unicode 字符串做什么?如果您只需要存储它们并将它们吐出来,那么您不需要任何库。 ICU 可用于更改规范化形式、大写、换行等。
-
@RI 需要从文件或控制台获取任意输入并插入字符,例如 ā á ǎ à ō ó ǒ ò ē é ě è ī í ǐ ì ū ú ǔ ù ǖ ǘ ǚ ǜ ü Ā Á Ǎ À Ō Ó Ǒ Ò Ē É Ě È。沿着 someString[5] = "ǜ";
-
这可能不需要ICU,只是一些简单的
memmove和memcpy... -
printf适用于您提供的任何字节;它不关心字符编码,除了格式字符串,它需要在语言环境的编码中有效。在任何情况下,您都应该使用 UTF-8 作为编码的语言环境……这是 2011 年而不是 1991 年。 -
A
char是一个字节,是的(这是 C 中字节的定义),但是chars 的数组可以保存一个或多个 UTF-8 字符的所有字节。如果您总是使用字符串而不是单个字符,那么过渡到 unicode 会很多更容易!无论您使用什么编码、库等,此建议都有效。