为什么我不能用wchar_t在c中打印unicode字符?

时间:2015-04-21 15:38:01

标签: c unicode wchar-t

示例代码:

int main(int argc, char *argv[]){
    int x = sizeof(wchar_t);
    printf("%i\n",x);
    wchar_t t = 0x011E;
    printf("%c\n\n",t);
    wchar_t a = 0x0041;
    printf("%c\n\n",a);
}

将打印:

4


A

0x011E是角色ğ的UTF-16 code。为什么不打印?

1 个答案:

答案 0 :(得分:0)

当你打印一个char时,你实际上只是将它的代码发送到控制台。和控制台渲染器使用自己的字符表解释此代码。所以你必须在源代码和控制台中使用相同的编码。

如果您正在运行Windows,请参阅here如何更改cmd.exe中的编码。