Ich habe einen Java-Code, der eine Excel-Datei liest und in eine Textdatei schreibt. Wenn ich die Ausgabetextdatei bekomme, sehe ich nur solche Symbole im Notizblock. "‷ 搮 ㄱ 〱 〰 But" Aber wenn ich die Textdatei in Wordpad oder in MS-Word öffne, werden die Daten korrekt angezeigt. Was könnte der Fehler sein?
Wie kodiert der Text?
Matt Ball vor 14 Jahren
0
3 Antworten auf die Frage
3
Task
Der Fehler liegt in der Verwendung von Notepad. Notepad verwendet die ersten paar Bytes einer Datei, um die Kodierung zu bestimmen. Sie müssen eine Datei mit einer bestimmten Kodierung öffnen, um sie richtig lesen zu können.
Try notepadd++ as a free notepad replacement (http://notepad-plus.sourceforge.net/uk/site.htm). Very handy and knows how to handle encoding properly. Also does syntax highlighting for various languages and XML.
vor 14 Jahren
4
oder ... geben Sie die Kodierungspräambel in die Datei aus
Lasse Vågsæther Karlsen vor 14 Jahren
0
2
Joey
Es ist sehr wahrscheinlich, dass der erste Teil Ihrer Daten in einer bestimmten Kodierung (UTF-16) oberflächlich wie Unicode aussieht. Dies war in früheren Versionen von Windows ein Problem und kann in diesem Artikel beschrieben werden . Ich denke jedoch, dass seit Windows Vista dieses spezielle Problem behoben wurde.
Eine einfache Problemumgehung wäre, Notepad für diese Daten nicht zu verwenden.
0
vafylec
Die Befehlszeilenoption:, notepad /A <filename>kann verwendet werden, um das Öffnen einer Datei zu erzwingen, als hätte sie die ANSI-Codierung. In diesem Fall würde die Datei ordnungsgemäß geöffnet werden.
Das Problem hier ist der 'Bush versteckt die Fakten' Fehler, einige TXT-Dateien haben eine 2- oder 3-Byte-Sequenz, die als Byte Order Mark (BOM) bezeichnet wird und die korrekte Kodierung für die Datei angibt. Wenn einer Datei dies fehlt, ruft Notepad die Kodierung der Datei ab und kann falsch erraten. Es gibt keine Stückliste, die angibt, dass es sich bei einer Datei um ANSI handelt, und daher besteht das Risiko, dass ANSI-Dateien falsch erraten werden. Einige Texteditoren gehen davon aus, dass es sich bei einer Datei um ANSI handelt, wenn keine Stückliste vorhanden ist. Der Ansatz von Notepad zum Bestimmen der Kodierung einer Datei kann je nach Version variieren.