如何获得stdin的UTF-8编码值?

时间:2012-01-02 21:18:16

标签: c utf-8 stdin stdio

我需要在ANSI C中编写一个程序,它将显示stdin的每个字符的UTF-8编码的十六进制值,而不管stdin使用的字符编码。例如,

AÀĀ

产量

41
C0
0100

C中是否有将字符编码转换为UTF-8的函数?

1 个答案:

答案 0 :(得分:4)

除非你知道即将发生什么,否则你不能放弃UTF-8。如果你知道stdin的编码,你可以使用iconv甚至ICU4C转换为UTF -8,然后以通常的方式转储十六进制。在某些情况下,您可以假设stdin符合LANG环境变量中指定的语言环境,但没有任何内容阻止某人运行:

yourprogram < SomeFileFullOfISO-2022-JP