在.NET控制台应用程序的越南字符(UTF-8)越南、控制台、应用程序、字符

由网友(爷如此霸道)分享简介:我试着写下了UTF8字符串(越南)到C#控制台,但没有成功。在windows进出口运行7. 我试图用该字符串转换Encoding类为char []为byte [],然后转换为字符串,但没有任何帮助,该字符串直接输入弗朗数据库。下面是一些例子TOI十LàĐức,cuộc歌VUI VEtuyệtVOI 它不显示像特殊字符:...

我试着写下了UTF8字符串(越南)到C#控制台,但没有成功。在windows进出口运行7.

我试图用该字符串转换Encoding类为char []为byte [],然后转换为字符串,但没有任何帮助,该字符串直接输入弗朗数据库。

下面是一些例子

  

TOI十LàĐức,cuộc歌VUI VE   tuyệtVOI

它不显示像特殊字符:DJ或U ......相反,它显示出来,用编码类差远了。

?。

有谁可以尝试了这一点,或知道这个问题?

感谢您

我的code        静态无效的主要(字串[] args)         {             XDataContext _new =新XDataContext();             Console.OutputEncoding = Encoding.GetEncoding(UTF-8);             字符串srcString = _new.Posts.First()TITLE;

  Console.WriteLine(srcString);
        //转换为UTF-16连接codeD源字符串转换为UTF-8和ASCII。
        byte []的UTF8字符串= Encoding.UTF8.GetBytes(srcString);
        byte []的asciiString = Encoding.ASCII.GetBytes(srcString);

        //写UTF-8和ASCII EN codeD字节数组。
        Console.WriteLine(UTF-8字节:{0},BitConverter.ToString(UTF8字符串));
        Console.WriteLine(ASCII字节:{0},BitConverter.ToString(asciiString));


        //转换UTF-8和ASCII EN codeD字节回UTF-16连接codeD
        //字符串和写入。
        Console.WriteLine(UTF-8文本:{0},Encoding.UTF8.GetString(UTF8字符串));
        Console.WriteLine(ASCII文本:{0},Encoding.ASCII.GetString(asciiString));

        Console.WriteLine(Encoding.UTF8.GetString(UTF8字符串));
        Console.WriteLine(Encoding.ASCII.GetString(asciiString));
    }
 
在.NET中创建高级控制台应用程序

和这里是出色的输出

 芽báoÄ'i厦»™Ibáo随感¢ñ
UTF-8的字节:4E-68-C 3 A0-20-62-C 3 A1-6F -20- C4-91-69-20-68-E1-BB-99-69-20-62-C3-
A1-6F-20-58-75 -C 3  -  A2-6E
ASCII字节:4E-68-3F-20-62-3F-6F-20-3F-69-20-68-3F-69-20-62-3F-6F-20-58-75-3F-
6E
UTF-8文本:芽báoÄ'i厦»™Ibáo随感¢ñ
ASCII文本:新罕布什尔州? B 2 O?I H?I B 2 O徐3 N
芽báoÄ'i厦»™Ibáo随感¢ñ
新罕布什尔州? B 2 O?I H?I B 2 O徐3 N


preSS任意键继续。 。 。
 

解决方案

 类节目
{
    [的DllImport(KERNEL32.DLL)
    静态外部布尔SetConsoleOutputCP(UINT W codePageID);

    静态无效的主要(字串[] args)
    {
        SetConsoleOutputCP(65001);
        Console.OutputEncoding = Encoding.UTF8;
        Console.WriteLine(测试,тест,τεστ,←↑→↓ΠΣ√∞①②③④,白越南川川LOC);
        到Console.ReadLine();
    }
}
 

输出截图(使用索拉或具有上述所有的字母组成的字体):

Im trying to write down an UTF8 string (Vietnamese) into C# Console but no success. Im running on windows 7.

I tried to use the Encoding class that convert string to char[] to byte[] and then to String, but no help, the string is input directly fron the database.

Here is some example

Tôi tên là Đức, cuộc sống thật vui vẻ tuyệt vời

It does not show the special character like : Đ or ứ... instead it show up ?, much worse with the Encoding class.

Does anyone can try this out or know about this problem?

Thank you

My code static void Main(string[] args) { XDataContext _new = new XDataContext(); Console.OutputEncoding = Encoding.GetEncoding("UTF-8"); string srcString = _new.Posts.First().TITLE;

        Console.WriteLine(srcString);
        // Convert the UTF-16 encoded source string to UTF-8 and ASCII.
        byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
        byte[] asciiString = Encoding.ASCII.GetBytes(srcString);

        // Write the UTF-8 and ASCII encoded byte arrays. 
        Console.WriteLine("UTF-8  Bytes: {0}", BitConverter.ToString(utf8String));
        Console.WriteLine("ASCII  Bytes: {0}", BitConverter.ToString(asciiString));


        // Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded  
        // string and write.
        Console.WriteLine("UTF-8  Text : {0}", Encoding.UTF8.GetString(utf8String));
        Console.WriteLine("ASCII  Text : {0}", Encoding.ASCII.GetString(asciiString));

        Console.WriteLine(Encoding.UTF8.GetString(utf8String));
        Console.WriteLine(Encoding.ASCII.GetString(asciiString));
    }

and here is the outstanding output

Nhà báo đi hội báo Xuân
UTF-8  Bytes: 4E-68-C3-A0-20-62-C3-A1-6F-20-C4-91-69-20-68-E1-BB-99-69-20-62-C3-
A1-6F-20-58-75-C3-A2-6E
ASCII  Bytes: 4E-68-3F-20-62-3F-6F-20-3F-69-20-68-3F-69-20-62-3F-6F-20-58-75-3F-
6E
UTF-8  Text : Nhà báo đi hội báo Xuân
ASCII  Text : Nh? b?o ?i h?i b?o Xu?n
Nhà báo đi hội báo Xuân
Nh? b?o ?i h?i b?o Xu?n


Press any key to continue . . .

解决方案

class Program
{
    [DllImport("kernel32.dll")]
    static extern bool SetConsoleOutputCP(uint wCodePageID);

    static void Main(string[] args)
    {
        SetConsoleOutputCP(65001);
        Console.OutputEncoding = Encoding.UTF8;
        Console.WriteLine("tést, тест, τεστ, ←↑→↓∏∑√∞①②③④, Bài viết chọn lọc");
        Console.ReadLine();
    }
}

Screenshot of the output (use Consolas or another font that has all the above characters):

阅读全文

相关推荐

最新文章