C# : japanische Zeichen werden mit unicode-Codierung

Die intention des Kodex ist die Ausgabe von unicode als japanische Zeichen in eine Datei

   String s = "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093";
   var Bytes = Encoding.Unicode.GetBytes(s);      
   string  key = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Unicode, Encoding.UTF8, Bytes));

Schlüssel ist, ich will auf die Datei zu drucken, hat aber den Wert \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093 Irgendwelche Ideen, was falsch?

Deine Frage und dein Beispiel-code ist völlig unerklärlich. Der ursprüngliche string ist ein C# - string (die wird intern gespeichert als UTF-16.) Dann ändern Sie es, um eine Sequenz von bytes, die eine UTF-16-string. Dann Convert es zu einer Sequenz von bytes, die eine UTF-8-string. Dann Lesen Sie diese bytes wieder in ein C# - string ist identisch mit der Zeichenfolge, die Sie in den ersten Platz. Was, genau, sind Sie hier versuchen zu erreichen?
Ein string in .NETZ ist immer UTF-16. So die Vorstellung von UTF-8-string nicht sinnvoll ist. Können Sie konvertieren eine Zeichenfolge in eine UTF-8 codierte Sequenz von bytes : var bytes = Encoding.UTF8.GetBytes(s);. Ist es das, was Sie brauchen?
UTF-8 ist eine Zeichenkodierung für Unicode.
Vielleicht hat er versucht, um die tatsächlichen Zeichen aus?
Man könnte finden diesem älteren Beitrag hilfreich. stackoverflow.com/questions/1615559/...

InformationsquelleAutor remo | 2011-08-30

Schreibe einen Kommentar