gpt4 book ai didi

c - 在 C 中处理多字节(非 ASCII)字符

转载 作者:行者123 更新时间:2023-11-30 18:02:18 25 4
gpt4 key购买 nike

我正在尝试做我自己的 wc(unix 过滤器)版本,但我遇到了非 ASCII 字符的问题。我对一个文本文件进行了十六进制转储,发现这些字符占用了多个字节。所以它们不适合炭化。有什么方法可以从文件中读取这些字符并像 C 中的单个字符一样处理它们(以便计算文件中的字符数)?我在谷歌上搜索了一下,发现了一些 wchar_t 类型,但没有任何简单的示例如何将它与文件一起使用。

最佳答案

I've been googling a little bit and found some wchar_t type, but there was not any simple example how to use it with files.

很高兴见到。没有任何简单的示例,因为不幸的是,正确的字符集支持并不简单

旁白:在理想的世界中,每个人都会使用 UTF-8(一种内存高效、稳健且向后兼容 ASCII 的 Unicode 编码),标准 C 库将包含 UTF-8 编码 -解码支持,并且这个问题的答案(以及一般的文本处理)将是简单明了的。

问题“What is the best unicode library for C?”的答案是使用ICU图书馆。您可能想查看ustdio.h ,因为它有 u_fgetc函数,并且向您的程序添加 Unicode 支持可能只需要输入几次 u_ 即可。

此外,如果您能抽出几分钟时间进行一些轻松阅读,您可能想阅读 The Absolute Minimum Every Software Developer Absolutely, Positively Must Know about Unicode and Character Sets (No Excuses!)来自 Joel On Software。

我个人从未使用过 ICU,但从现在开始我可能会使用:-)

关于c - 在 C 中处理多字节(非 ASCII)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242605/

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