【问题标题】:Is there any way to write Hebrew in the Windows Console?有没有办法在 Windows 控制台中编写希伯来语?
【发布时间】:2010-02-06 15:29:31
【问题描述】:

有没有办法在 Windows 控制台中编写希伯来语?

我尝试了以下方法:

Console.OutputEncoding = new UTF8Encoding(false);
Console.WriteLine("\u05D0\u05D1");
Console.ReadLine();

但不是“אב”,而是写一些其他 Unicode 字符,这不在希伯来语 ABC 中。

有什么想法吗?

【问题讨论】:

    标签: .net unicode utf-8 console hebrew


    【解决方案1】:

    只需更改 OutputEncoding:

    Console.OutputEncoding = Encoding.GetEncoding("Windows-1255");
    

    【讨论】:

      【解决方案2】:

      如果您可以在您的程序之前调用chcp 命令,您可以将代码页更改为希伯来语,然后您的字符将是可读的。这里有一篇关于国际化和 windows 控制台的有趣文章:http://illegalargumentexception.blogspot.com/2009/04/i18n-unicode-at-windows-command-prompt.html

      【讨论】:

      【解决方案3】:
              Console.OutputEncoding = new UTF8Encoding();
              Console.WriteLine("\u05D0\u05D1");
              Console.WriteLine("אריאל");
              Console.WriteLine(new string("אריאל".Reverse().ToArray()));
      

      对我有用,也许只是为了消除“假”? 这在我的机器上工作,除了 o.c.它会倒写字母,除非我使用反向

      也许您需要设置注册表?运行 -> regedit 并执行以下操作: http://blogs.microsoft.co.il/technet/2013/06/11/%D7%90%D7%99%D7%9A-%D7%90%D7%A4%D7%A9%D7%A8-%D7%9C%D7%A8%D7%90%D7%95%D7%AA-%D7%A2%D7%91%D7%A8%D7%99%D7%AA-%D7%91-powershell-console/

      在注册表窗口中右键选择新字符串。

      【讨论】:

      • 以上似乎不适用于当前版本的powershell。我在第一行得到一个错误。
      【解决方案4】:

      如果我错了,请纠正我,但我认为控制台不支持 UTF8。

      【讨论】:

      • 显然不是(见下文)。
      • 控制台已中断对 UTF-8 的支持。 Windows 有一个代码页 65001,您可以在控制台中通过 API 或通过键入 chcp 65001cmd 设置它。但是,当使用此代码页时,Windows WriteFile() API 中存在一个错误,该代码页返回写入的 Unicode 字符数,而不是记录的写入字节数。如果 .net 或 C# 比较此结果以检查写入是否成功,则它将不起作用。这个 API 错误是 Perl、PHP 和 Ruby 无法在代码页 65001 下工作以及 Visual C 运行时库中的各种问题的原因。
      【解决方案5】:

      如果您只希望它用于短期测试而不是构建整个应用程序,只需使用支持 unicode 的 Debug.WriteLine(仅使用 heb 字符进行测试)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 2016-08-20
        • 2012-01-31
        • 1970-01-01
        • 2013-10-19
        • 1970-01-01
        相关资源
        最近更新 更多