【问题标题】:how to convert a utf8 string to ascii string? [duplicate]如何将 utf8 字符串转换为 ascii 字符串? [复制]
【发布时间】:2010-09-18 17:37:25
【问题描述】:

可能重复:
UTF-8 -> ASCII in C language

如何将 utf8 字符串转换为 ascii 字符串?

【问题讨论】:

标签: c


【解决方案1】:

UTF-8 是 ASCII 的超集。字符代码 0-127(即 ASCII 字符)直接映射到二进制值 0-127。如果您想将 UTF-8 转换为 ASCII,您可以简单地删除 >= 128 的所有字节。这意味着在转换后的字符串中将忽略非 ASCII 字符 - 如果这是您想要的。

请注意,对于 UTF-8 解码,您需要检测编码为多个字节的字符。字节数是最左边的 '0' 位左侧的 '1' 位的数量,这仅适用于字节 >= 128。例如,11000000 是编码为两个字节的字符的第一个字节(它有两个有效的“1”位)。这意味着您还必须删除以下字节。

由于属于多字节编码字符的字节总是 >= 128,你可以忽略上面的段落 :)

【讨论】:

  • +1 不错。我喜欢你的方法 LOL
猜你喜欢
  • 2011-01-21
  • 2017-03-30
  • 2014-01-29
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 2012-02-01
  • 1970-01-01
相关资源
最近更新 更多