it-swarm.com.de

Unterschiede in den Formaten Unicode, UTF, ASCII und ANSI

Was ist der Unterschied zwischen den Unicode, UTF8, UTF7, UTF16, UTF32, ASCII und ANSI Kodierungen?

Inwiefern sind diese für Programmierer hilfreich?

329
web dunia

Gehen Sie Ihre Liste:

  • " nicode " ist keine Kodierung, obwohl in vielen Dokumentationen leider ungenau angegeben wird, welche Unicode-Kodierung das jeweilige System standardmäßig verwendet. Unter Windows und Java bedeutet dies häufig UTF-16. An vielen anderen Stellen bedeutet dies UTF-8. Richtigerweise bezieht sich Unicode auf den abstrakten Zeichensatz selbst und nicht auf eine bestimmte Codierung.
  • TF-16 : 2 Bytes pro "Code-Einheit". Dies ist das native Format von Zeichenfolgen in .NET und im Allgemeinen in Windows und Java. Werte außerhalb der Basic Multilingual Plane (BMP) werden als Ersatzpaare codiert. (Diese werden relativ selten verwendet - was ein guter Job ist, da sehr wenige Entwickler sie richtig machen, vermute ich. Ich bezweifle sehr, dass ich das tue.)
  • TF-8 : Codierung mit variabler Länge, 1-4 Bytes pro Codepunkt. ASCII Werte werden als ASCII mit 1 Byte codiert.
  • TF-7 : Wird normalerweise für die Mail-Codierung verwendet. Die Chancen stehen gut, dass Sie sich irren, wenn Sie glauben, dass Sie es brauchen und keine Post schreiben. (Das ist nur meine Erfahrung mit Personen, die in Newsgroups usw. posten. Außerhalb von E-Mails wird es überhaupt nicht häufig verwendet.)
  • TF-32 : Codierung mit fester Breite unter Verwendung von 4 Bytes pro Codepunkt. Dies ist nicht sehr effizient, erleichtert aber das Leben außerhalb des BMP. Ich habe ein .NET Utf32String Klasse als Teil meiner MiscUtil Bibliothek, sollten Sie es jemals wollen. (Es ist nicht sehr gründlich getestet worden, wohlgemerkt.)
  • ASCII : Einzelbyte-Codierung nur mit den unteren 7 Bits. (Unicode-Codepunkte 0-127.) Keine Akzente usw.
  • ANSI: Es gibt keine feste ANSI-Kodierung - es gibt viele davon. Wenn Leute "ANSI" sagen, meinen sie normalerweise "das Standardgebietsschema/die Standardcodepage für mein System", das/die über Encoding.Default abgerufen wird und häufig Windows-1252 ist, dies aber sein kann andere Gebietsschemas.

Es gibt mehr auf meine Unicode-Seite und Tipps zum Debuggen von Unicode-Problemen .

Die andere große Ressource von Code ist nicode.org , die mehr Informationen enthält, als Sie jemals durcharbeiten können - möglicherweise ist das nützlichste Bit Codetabellen .

447
Jon Skeet

Lesen Sie zum Einstieg in die Zeichenkodierung Folgendes: Joel on Software: Das absolute Minimum, das jeder Software-Entwickler unbedingt und unbedingt über Unicode und Zeichensätze wissen muss (keine Ausreden!)

Übrigens - ASP.NET hat damit nichts zu tun. Kodierungen sind universell.

65
Tomalak