显示阿拉伯字符在C#控制台应用程序

显示阿拉伯字符在C#控制台应用程序

本文介绍了显示阿拉伯字符在C#控制台应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我相信这是可以显示在控制台应用程序阿拉伯字符13+年前,因为Windows ME。

现在我使用Visual Studio 2013,在Windows 8,下面code所示:

   Console.OutputEncoding = System.Text.Encoding.Unicode;
   Console.WriteLine("مرحبا بك");

Is there anyway to show Arabic characters in the console output?

解决方案

There are several issues to resolve to get this to work.

  • You need a font that supports both Arabic AND the windows console.

See KB : Necessary criteria for fonts to be available in a command window

  • You must install the font.

For testing, I used DejaVu Mono, which is one of the few that supports Arabic. Arabic is a tough language to make a monotype font with since the aesthetics of the language do not work well with a fixed width for each character. Nevertheless, this font makes an honest effort. For other possible alternatives, see :

complete, monospaced Unicode font?

The font must be installed in the normal way for your version of Windows (in Vista/7/8 this is right-click, Install on the .ttf file). Once this is done, you have to follow the directions in the KB.

  1. Registry Editor --> HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont
  2. Add a new string value named "000" with the value DejaVu Sans Mono
  3. Reboot

Once you've rebooted, you can change the font in the console by selecting "Properties" from the console menu and changing the font in the "Font" tab.

Result.

... so after all that, we discover that the console does not support Right-To-Left languages. I guess you could use a function like :

static string Reverse(string text)
{
   if (text == null) return null;
   char[] array = text.ToCharArray();
   Array.Reverse(array);
   return new String(array);
}

and then do

Console.OutputEncoding = System.Text.Encoding.Unicode;
Console.WriteLine(Reverse("مرحبا بك"));

这篇关于显示阿拉伯字符在C#控制台应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 02:47