【问题标题】:wprintf with UNICODE (Hebrew) characters带有 UNICODE(希伯来语)字符的 wprintf
【发布时间】:2012-02-03 09:39:20
【问题描述】:

我有一个包含英语和希伯来语字符的 wchar_t 数组,当我使用 wprintf() 打印它时,它只打印以控制英语字符。当我使用 _wsetlocale( LC_ALL, L"Hebrew" ) 时,我得到的希伯来字符是“????”。 我正在开发的机器当然支持希伯来语。

顺便说一句 - 在带有希伯来字符的目录上使用 c:\windows\system32\cmd.exe 和 'dir',也会显示“???”而不是希伯来语。

有什么想法吗?

【问题讨论】:

标签: c windows unicode console hebrew


【解决方案1】:

您是否确认您的控制台字体可以处理 Unicode 字符?大多数没有。你可以试试 Consolas 字体。

当我之前遇到这个问题时,我发现 Michael Kaplan 的 this 文章非常有帮助。

【讨论】:

    【解决方案2】:

    基本上,Microsoft 的 C 运行时库没有很好地实现,无法实现这一点。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2015-12-11
      • 2018-01-24
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多