Problem über 65533 in C # Textdatei lesen

7

Ich habe eine Beispielanwendung erstellt, um alle Sonderzeichen beim Kopieren von OpenOffice Writer in Notepad zu laden. Doppel-Codes unterscheiden sich und wenn ich versuche, dies zu laden.

%Vor%

Dies erzeugt das Problem von 65533 Issue kommt und die Textdatei enthält:

%Vor%

Dies wurde in das Symbol geändert:

%Vor%     
Aravind Srinivas 22.02.2013, 10:42
quelle

1 Antwort

20

U + FFFD ist das "Unicode-Ersatzzeichen", das verwendet wird, wenn die Daten, die Sie versuchen zu lesen ist ungültig für die Codierung, die verwendet wird, um binäre Daten in Text zu konvertieren.

Wenn Sie zum Beispiel eine Datei mit ISO-8859-1 schreiben, dann aber versuchen, sie mit UTF-8 zu lesen , könnten Sie leicht mit einigen Bytefolgen landen, die einfach aren sind 't gültiger UTF-8. Jedes ungültige Byte würde (standardmäßig) in U + FFFD übersetzt werden.

Im Grunde müssen Sie die richtige Kodierung für File.ReadAllLines als zweites Argument angeben. Das bedeutet natürlich, dass Sie zuerst die Kodierung der Datei kennen müssen.

    
Jon Skeet 22.02.2013 10:48
quelle

Tags und Links