Ursprüngliche Adresse: Klicken Sie hier, um den Link zu öffnen
Ich habe heute einen Blog-Beitrag auf der Homepage von Yuanzi gesehen – ein kurzes Gespräch über Unicode und UTF-8, aus dem ich das gelernt habe UTF-8 ist Teil der Unicode One-Implementierungsmethode:
Unicode gibt nur eine einheitliche Binärzahl für jedes Zeichen auf der Welt an und gibt nicht an, wie das Programm sie speichern und analysieren soll.
Man kann sagen, dass UTF-8 eine der Unicode-Implementierungsmethoden ist...
Bei der Aufzeichnung dieser Ernte im Flash-Speicher erwähnte @飞鸟_Asuka eine gute die Antwortfrage: „Warum sind Unicode und utf8 zwei separate Optionen bei der Auswahl der Kodierungsmethode?“
In C# gibt es jeweils zwei Optionen für System.Text.Encoding.Unicode und System.Text.Encoding.UTF8 Kodierungsmethoden. Wenn UTF-8 eine Implementierungsmethode von Unicode ist, warum wird dann Encoding.Unicode parallel zu UTF8 in C# als Codierungsmethode verwendet?
Später habe ich die Antwort auf stackoverflow gefunden:
Windows verarbeitet sogenannte „Unicode“-Zeichenfolgen als UTF-16-Zeichenfolgen, während die meisten UNIX-Geräte heutzutage standardmäßig UTF-8 verwenden
Es stellt sich heraus, dass die Standard-Unicode-Implementierung in Windows UTF-16 ist, also ist Encoding.Unicode in C# UTF-16.
Der Kommentar von System.Text.Encoding.Unicode beweist dies auch:
// // Summary: // Gets an encoding for the UTF-16 format using the little endian byte order. // // Returns: // An encoding for the UTF-16 format using the little endian byte order.public static Encoding Unicode { get; }
In C# ist Encoding.Unicode = UTF-16.
Das Obige ist der Unterschied zwischen Encoding.Unicode und Encoding.UTF8 in C#. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!