繁体   English   中英

libc中的字符编码?

[英]character encoding in libc?

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

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

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

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

使用和处理广泛的人物。

char应该是一个7位兼容的ASCII编码(虽然我找不到任何明确的参考)。 wchar_t定义留给实现 ,但C标准要求C可移植字符集中的字符相同。 如果我理解正确的话,那么

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM