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

时间:2010-09-18 17:37:26

标签: c

  

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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