gpt4 book ai didi

c - C中的UTF8处理

转载 作者:太空狗 更新时间:2023-10-29 17:23:51 26 4
gpt4 key购买 nike

我对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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com