Ich versuche, eine UTF-8-Zeichenfolge (vietnamesisch) in C# Console aufzuschreiben, aber keinen Erfolg. Ich laufe auf Windows 7.Vietnamesisches Zeichen in .NET-Konsolenanwendung (UTF-8)
Ich versuchte, die Encoding
Klasse zu verwenden, die string
-char[]
zu byte[]
und dann in String konvertieren, aber keine Hilfe, ist der String-Eingang direkt aus der Datenbank. Hier
ist einige Beispiel
Tôi tên là Đức, Cuoc Lied, das VUI về Tuyet Voi
Es zeigt nicht den besonderen Charakter wie Đ
oder ứ
... statt es zeigen bis ?
, viel schlimmer als mit der Encoding-Klasse.
Kann jemand dieses ausprobieren oder über dieses Problem wissen?
Mein 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));
}
und hier ist die hervorragende Ausgangs
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 . . .
die Ausgabe Codierung UTF8 Einstellung sollte funktionieren: 'Console.OutputEncoding = Encoding.UTF8 '. Sind Sie sicher, dass das Problem nicht darin liegt, wie Sie den Text aus der Datenbank lesen? Wenn Sie in Ihrem Code einen Haltepunkt setzen, wird 'srcString' korrekt codiert? –
Ja, der Breakpoint-Ausgang ist 100% in Ordnung. Ich überlege, auf Windows-Form zu verschieben, aber ich brauche nicht so viele ausgefallene Funktionen in diesem Fall. :(zu schlecht für winconsole – DucDigital