【问题标题】:Representing UTF-8 in ASCII [duplicate]用 ASCII 表示 UTF-8 [重复]
【发布时间】:2014-03-07 22:15:41
【问题描述】:

我正在尝试在“C”中为语言“go”编写词法分析器。但是“go”使用 UTF-8 作为字符集,而 C 使用 Ascii。那么是否可以用 ascii 表示 unicode 字符呢?

【问题讨论】:

  • 嗯,有一种编码叫做UTF-7,但是为什么C不能处理其他非ASCII编码呢?
  • Project ICU 为 C 以及 C++ 和 Java 提供了可移植的 Unicode 处理实现。
  • @TimPietzcker:嗯,他需要从 UTF-8 转换为 UTF-7 才没有明显的收获。这些年来,我从未见过在电子邮件之外使用 UTF-7。
  • @DarkDust:谢谢,这正是我问的原因。虽然有 Unicode 的 ASCII 表示,但他不太可能需要它来解决他的问题......
  • 你不能用 ASCII 表示所有的 unicode 字符,因为 ASCII 只有 128 个字符。但是你可以在 C 中使用 UTF-8。

标签: c utf-8 ascii


【解决方案1】:

C 支持multibyte strings,但您必须弄乱语言环境才能使其工作。

ASCII 实际上是 UTF-8 的一个子集,因此您可以在一定程度上使用标准的 C 单字节字符串函数。请记住,需要或返回长度的函数是字节数,而不是字符数。

对于更复杂的东西,您需要外部库。

【讨论】:

  • 你确实提到了,但我还要强调一点:C 多字节字符串处理是区域敏感的!
猜你喜欢
  • 2013-03-22
  • 2021-11-17
  • 2016-05-02
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 2014-06-19
相关资源
最近更新 更多