Tôi đang cố gắng viết một chuỗi UTF-8 (tiếng Việt) thành C# Console nhưng không thành công. Tôi đang chạy trên Windows 7.Ký tự tiếng Việt trong ứng dụng .NET Console (UTF-8)
Tôi cố gắng để sử dụng lớp Encoding
chuyển đổi string
-char[]
để byte[]
và sau đó đến String, nhưng không có sự giúp đỡ, chuỗi được nhập trực tiếp từ cơ sở dữ liệu.
Dưới đây là một số ví dụ
Tôi tên là Đức, cuộc sống thật vui vẻ tuyệt vời
Nó không hiển thị các ký tự đặc biệt như Đ
hoặc ứ
... thay vào đó nó cho thấy lên ?
, tệ hơn nhiều so với lớp Encoding.
Có ai có thể dùng thử hoặc biết về sự cố này không?
Mã của 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));
}
và đây là sản phẩm nổi bật
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 . . .
Thiết lập mã hóa đầu ra để UTF8 nên làm việc: 'Console.OutputEncoding = Encoding.UTF8 '. Bạn có chắc chắn rằng vấn đề không phải là từ cách bạn đang đọc văn bản từ cơ sở dữ liệu? Nếu bạn đặt điểm ngắt trong mã của mình, 'srcString' có được mã hóa chính xác không? –
có, đầu ra điểm ngắt là 100% tiền phạt. Tôi đang xem xét di chuyển đến cửa sổ hình thức nhưng tôi không cần nhiều tính năng ưa thích trong trường hợp này. :(quá xấu cho winconsole – DucDigital