带有UNICODE(希伯来语)字符的wprintf

时间:2012-01-05 15:01:57

标签: c windows unicode console hebrew

我有一个带有英文和希伯来字符的wchar_t数组,当我用wprintf()打印它时,它只打印控制英文字符。当我使用_wsetlocale(LC_ALL,L“Hebrew”)时,我将希伯来字符称为“????”。 我正在研究的机器当然支持希伯来语。

BTW - 在希伯来字符的目录上使用c:\​​ windows \ system32 \ cmd.exe和'dir',也显示“???”而不是希伯来语。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您确认您的控制台字体可以处理unicode字符吗?大多数人没有。您可以尝试使用Consolas字体。

当我遇到这个问题之前,我发现迈克尔卡普兰的this文章非常有帮助。

答案 1 :(得分:2)

基本上,Microsoft的C运行时库实现得不是很好。

您可以执行_setmode(_fileno(stdout), _O_U16TEXT);然后使用wcout或wprintf编写即可。但是,尝试使用cout或printf,或者任何不写UTF-16的东西都会导致程序崩溃。