我对UTF8有基本的了解:码位是可变长的,所以一个“字符”可以是8位,16位,甚至更长。
我想知道是否有一些 C 语言的示例代码、库等与 UTF8 字符串(如 C 中的标准库)做类似的事情。告诉字符串的长度等
谢谢,
最佳答案
GNU 确实有一个 Unicode 字符串库,叫做 libunistring , 但它几乎没有处理任何东西 ICU的确实。
例如,GNU 库甚至不让您访问排序规则,这是所有字符串比较的基础。相比之下,ICU 确实如此。 ICU 拥有但 GNU 没有出现的另一件事是 Unicode 正则表达式。为此,您可能想使用 Phil Hazel’s excellent PCRE library for C ,可以使用 UTF-8 支持进行编译。
但是,GNU 库可能足以满足您的需要。我不太喜欢它的 API。很乱。如果你喜欢 C 编程,你可以尝试 Go programming language , 它具有出色的 Unicode 支持。这是一种新语言,但小巧、干净且使用起来很有趣。
另一方面,主要的解释型语言——Perl、Python 和 Ruby——都对 Unicode 提供了不同的支持,这比你在 C 中得到的要好。其中,Perl 的 Unicode 支持是最发达和最强大的.
请记住:仅支持更多字符是不够的。没有它们附带的规则,就没有 Unicode。至多,您可能拥有 ISO 10646:一个大字符库,但没有规则。我的口头禅是“Unicode 不仅仅是更多的字符;更多的字符加上一大堆处理它们的规则。”
关于c - C中的UTF8处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10948234/