Frage

Ich bin nur an den Konstrukteuren für Stream / Writer und ich stelle fest es UTF8 als Standard verwendet. Wer weiß, warum das so ist? Ich würde es sich um eine sicherere Wette gewesen wäre vermutet haben Unicode Standard.

War es hilfreich?

Lösung

UTF-8 wird mit einem beliebigen ASCII-Dokument arbeiten, und ist in der Regel kompakter als UTF-16 - aber es deckt immer noch die ganze Unicode. Ich würde sagen, dass UTF-8 ist far häufiger als UTF-16. Es ist auch der Standard für XML (wenn es keine BOM und keine explizite Kodierung angegeben).

Warum denken Sie, es wäre besser, auf UTF-16 Standard? (Das ist, was Encoding.Unicode ist.)

EDIT: Ich vermute, Sie sind verwirrt über genau das, was UTF-8 umgehen kann. Diese Seite es ziemlich klar beschrieben, darunter, wie eine bestimmte Unicode-Zeichen codiert. Es ist eine variabler Breite Codierung, aber es deckt die gesamte Unicode.

Andere Tipps

UTF8 ist Unicode, genauer gesagt eines der Unicode-Codierung Typen.

Noch wichtiger ist sein rückwärts mit ASCII-kompatibel, und es ist die Standard-Voreinstellung für XML und HTML

„Unicode“ ist der Name eines Standard, also gibt es keine solche Codierung als „Unicode“. Vielmehr gibt es zwei Kartierungsmethoden: UTF und UCS .

Wie bei "warum" -Teil, UTF-8 hat eine maximale Kompatibilität mit ASCII.

Wie alle anderen schon gesagt, UTF-8 ist ein Codierungsstandard in Unicode. UTF-8 verwendet eine variable Anzahl von Bytes alle Unicode-Zeichen zu kodieren sind.

Alle ASCII-Zeichen werden als dargestellt, so dass ASCII-Dateien können mit nun weiteren Umschweife gelesen werden. Sobald ein Byte im Stream hat seine achte Bit (höchster Bit,> 127) gesetzt, löst dies den Leser mit dem folgende Byte zu kombinieren, bis die <128. Die Kombination dann gilt als 1 Zeichen.

Es gibt Zeichen in lateinischer Sprache-1 (ANSII), die zwei Zeichen codiert werden unter Verwendung: zum Beispiel E wird als e codiert und '. Länge ( 'E') ist daher 2.

Windows verwendet UTF-16 intern, die die kodierbaren Zeichen auf 64K begrenzt, die keineswegs alle Unicde Zeichen. UTF-32 einstweilen ermöglicht für alle Charaktere, aber auch künstlich begrenzt ist. Und beide sind nicht aufwärtskompatibel zu ASCII, wie die haben führende Nullen:

A = ASCII h41 = UTF-8 h41 = UTF-16 h0041 = UTF-32 h00000041

Es gibt auch kleine und Big-Endian-Codierungen:

A = UTF-16 big endian h0041 = UTF-16 little endian h4100

Stellen mit UTF16 oder UTF32 Ihre Dateien zu speichern. Sie würden (für Textdateien), Doppel- oder quadrouple in der Größe im Vergleich zu ASCII und UTF-8 (UTF-8, wenn nur ASCII-Zeichen verwendet werden). UTF-8 erlaubt nicht nur für alle Zeichen in dem Unicode-Standard, auch für zukünftige Erweiterungen, aber es spart Platz effizient als auch.

Normalerweise sind die ersten beiden Bytes einer Datei, die BOM oder Byte Order Marker, sagen Sie, welche Codierungsstandard verwendet wird. Wenn weggelassen, XML und StreamRedaer verwenden UTF-8, wie Sie herausgefunden haben. Dies wiederum macht Sinn, als ASCII-Dateien haben keine BOM und daher in den meisten Fällen richtig gelesen. Dies könnte nicht wahr sein für alle Dateien von LATIN-1 verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top