ANSI zu UTF-8 in Notepad ++

93061
user3658425

Ich habe einen in ANSI codierten Text:

ANSI text file

Wenn ich versuchte, es in UTF-8 zu konvertieren (mithilfe des Notepad ++ - Menüs Encoding> UTF-8), bekomme ich einige seltsame Zeichen:

UTF-8 text file

Ich dachte, dass UTF-8 eine Obermenge von ANSI ist und dass ich später solche Probleme nicht mehr hätte. Gibt es überhaupt eine Möglichkeit, die Erscheinung dieser komischen Charaktere zu vermeiden?

23
Ich sehe nicht, was im letzteren Bild komisch ist phuclv vor 9 Jahren 0
Ich meinte die nicht darstellbaren Zeichen. Irgendwie kann man das vermeiden? user3658425 vor 9 Jahren 0
Hast du die Frage bearbeitet? Ich glaube, ich sehe die Bilder umgekehrt phuclv vor 9 Jahren 0
Ja, es tut mir leid, dass ich meine letzte Bearbeitung direkt nach dem Hinzufügen der Bilder durchgestoßen habe. Hiermit wird der Zusatz gelöscht: Wenn Sie sie wieder hinzufügen können, wäre das großartig! user3658425 vor 9 Jahren 1
Alles, was ich über das Thema gelernt habe, habe ich von Joels "Das absolute Minimum, das jeder Softwareentwickler unbedingt wissen muss, muss über Unicode und Zeichensätze (keine Ausreden!) Bescheid wissen." (Http://www.joelonsoftware.com/articles/Unicode). html) " Uwe Keim vor 9 Jahren 4
@UweKeim: ziemlich schlecht, weil es veraltet ist. Es behauptet, dass UTF-8 bis zu sechs Byte pro Codepunkt aufnehmen kann, und empfiehlt UCS-2 (!?) Auf der Serverseite (!?!?). ybungalobill vor 8 Jahren 0

1 Antwort auf die Frage

35
phuclv

UTF-8 ist kein Zeichensatz, nur eine Kodierung für Unicode. Die ersten 128 Zeichen sind mit ASCII identisch, unterscheiden sich jedoch in den hohen 128 Byte. Ein Byte mit gesetztem High-Bit (oder> = 0x80) ist ein erweitertes Zeichen in ASCII, während es in UTF-8 das Startbyte einer Multibyte-Sequenz angibt. Das ist der Fall von 0x93 oder 0x94 oben. Ich sehe jedoch nichts Seltsames in der Datei. Hierbei handelt es sich um intelligente Anführungszeichen oder Anführungszeichen mit unterschiedlichen Formularen zum Öffnen und Schließen von Anführungszeichen, die Sie häufig sehen, wenn Sie einen Rich Text-Editor wie MS Word verwenden

Bearbeiten

Die Frage wurde bearbeitet. Ich denke, das liegt daran, dass Sie das falsche Werkzeug gewählt haben. Die encodeMenüelemente dienen zum Ändern der Kodierung, wenn falsche Zeichen angezeigt werden. Es behandelt nur die gleiche Byte-Sequenz, die von der Festplatte gelesen wird, als eine andere Kodierung. Da ASCII und UTF-8 unterschiedlich sind, haben Sie eine schlecht geformte UTF-8-Bytefolge und sehen das Ergebnis oben. Sie müssen wählen convert to UTF-8, um die gesamten Eingangsbytes zu ändern

notepad encoding

Sie haben auch ANSI und ASCII verwechselt. ANSI bezieht sich oft auf Windows-1252, einen Zeichensatz, der in Englisch Windows und einigen westeuropäischen Sprachen verwendet wird. Es ist eine Obermenge von ISO 8859-1, obwohl ISO 8859-1 auch als ANSI bezeichnet werden kann. ISO 8859-1 ist auch die ersten 256 Codepunkte von Unicode. Es handelt sich also um eine Teilmenge von Unicode, die jedoch nicht mit der UTF-8-Codierung kompatibel ist. ASCII ist ein 7-Bit-Zeichensatz und ist eine Teilmenge des ANSI, die mit 8 Bit codiert ist, wird jedoch auch als ANSI bezeichnet, wenn auch nicht sehr korrekt

https://en.wikipedia.org/wiki/ANSI_character_set

Im Allgemeinen ist die Beziehung zwischen Zeichensätzen wie folgt

ASCII < ISO 8859-1 < Windows-1252 ^ Unicode 
Danke, Entschuldigung, dass Sie den Zeichensatz mit der Kodierung vermasselt haben. Gibt es eine Möglichkeit, diese nicht darstellbaren Zeichen zu vermeiden und stattdessen einige Anführungszeichen zu verwenden? user3658425 vor 9 Jahren 0
@ user3658425 siehe meine Bearbeitung phuclv vor 9 Jahren 0
Danke, das löst mein Problem. Keine Ahnung warum, aber ich dachte 'encode' im Menü bedeutete, dass es konvertiert werden würde :) user3658425 vor 9 Jahren 0
Ich habe auch die ANSI / ASCII-Informationen oben bearbeitet phuclv vor 9 Jahren 1
Beachten Sie, dass Sie im Allgemeinen "UTF-8 ohne Byte Order Mark" benötigen. Wie einige andere in der Vergangenheit gesagt haben, ist * "UTF-8 die ** einzige ** nützliche String-Codierung." * Riking vor 9 Jahren 3
@Riking: Verwenden Sie niemals UTF-8. oder "N'DUUH!" Williham Totland vor 9 Jahren 0
@WillihamTotland http://www.utf8everywhere.org/ phuclv vor 9 Jahren 3
@ LưuVĩnhPhúc: In der Tat. Williham Totland vor 9 Jahren 0