Sometimes we need to output non-english characters in Console, this is possible(really?) using Console.OutputEncoding property. Below is sample code to output latin & chinese characters
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace Test
{
class Program
{
static string latinString = "èé·ä»";
static string chineseString = "蘇雷什:密碼";
[DllImport("kernel32.dll")]
static extern bool SetConsoleOutputCP(uint wCodePageID);
static void Main(string[] args)
{
var latinEncoding = Encoding.GetEncoding("ISO-8859-1");
var utf8Encoding = Encoding.GetEncoding("UTF-8");
//-------Start Chinese Characters------------
SetConsoleOutputCP((uint)utf8Encoding.CodePage);
Console.OutputEncoding = utf8Encoding;
Console.WriteLine(chineseString);
//-------End Chinese Characters------------
//-------Start Latin Characters------------
SetConsoleOutputCP((uint)latinEncoding.WindowsCodePage);
Console.OutputEncoding = latinEncoding;
Console.WriteLine(latinString);
//-------End Latin Characters------------
}
}
}
But wait - it ain't going to display on windows(English) OS.
http://stackoverflow.com/questions/6405428/can-i-get-console-to-show-chinese
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/fe549b29-3e09-4176-b317-1e0094abf71a/
http://www.csharp-examples.net/culture-names/
http://stackoverflow.com/questions/2213541/vietnamese-character-in-net-console-application-utf-8
No comments:
Post a Comment