现在的位置: 首页 > 综合 > 正文

glibc的wchar_t问题

2013年08月18日 ⁄ 综合 ⁄ 共 219字 ⁄ 字号 评论关闭

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

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

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

抱歉!评论已关闭.