libc中的字符编码?

时间:2009-05-28 06:43:44

标签: c encoding

libc中预期的字符编码是什么?例如,gethostname(char name,size_t namelen);将char 作为参数。是否期望name参数在utf8中编码(保持ascii完整)或简单的ascii或其他格式?

C还要求任何字符编码方案吗?

4 个答案:

答案 0 :(得分:2)

所有字符串函数(widechar函数除外)仅支持本机字符集,例如Unix / Linux / Windows上的ASCII或IBM大型机/中型计算机上的EBCDIC。

答案 1 :(得分:1)

  • char使用ASCII
  • wchar_t是unicode的标准C数据类型

使用和处理广泛的字符。

答案 2 :(得分:0)

char应该是7位兼容的ASCII编码(虽然我找不到任何明确的参考)。 definition of wchar_t is left to the implementation,但C标准要求C portable character集中的字符相同。如果我理解正确,那么

char a = 'a';
wchar_t aw = L'a';
if (a == (char)aw) {
    // should be true
}

该标准没有提及UTF-8的任何内容。

答案 3 :(得分:0)

您可能必须使用第三方库,例如GLib。 这个lib是可移植的,非常有用,它还提供正则表达式,数据结构等。