我正在尝试将UTF-8字符串(越南语)写入C#控制台,但没有成功。我在Windows 7上运行。
我尝试使用Encoding
类将string
转换为char[]
到byte[]
,然后将字符串字符串(但没有帮助)直接从数据库中输入。
下面是一些例子
Tín làĐức,cuộc sống thật vui诉ẻtuyệt诉ờI
它不显示像Đ
或ứ
这样的特殊角色.相反,它显示的是?
,比编码类要糟糕得多。
有没有人可以试一试或者知道这个问题?
我的代码
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));
}
这是杰出的产出
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 . . .
发布于 2010-04-04 10:58:22
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();
}
}
输出的屏幕截图(使用Consolas或具有上述所有字符的其他字体):
发布于 2010-02-06 15:17:13
您需要将Console.OutputEncoding
设置为与UTF-8
匹配。
可能是这样的:
Console.OutputEncoding = System.Text.Encoding.UTF8;
发布于 2010-02-06 15:25:08
在控制台窗口中使用的字体是否支持要显示的字符?
https://stackoverflow.com/questions/2213541
复制相似问题