glibc的wchar_t问题

来源:互联网 发布:赵泓霖免费网络公开课 编辑:程序博客网 时间:2024/05/29 02:02

glibc对wchar_t的处理确实会带来不少陷阱,因为它既可能是16位,又可能是32位。

在mac上,默认情况下是32位的,而cocoa里UniChar是16位的。另外,还有一些打印函数的格式化也受到影响。比如swprintf。

在windows上,宽字符串和窄客串格式化符都是%s。而glibc在wchar_t是16位是工作正常,到32位是则只处理了每一个字符!原因是它仍然按16位处理,而后面正好是结束符。正确的格式化符是%ls或%S。

原创粉丝点击