2016-04-26 19 views
1

Ich habe ein Problem:Wie ersetzen Sonderzeichen in java

ich mehr Wert kopiert (zB 23700 5.000,2 0.000) aus Excel-Datei in einer Datei .txt.

Wenn ich in Java lesen dieser Wert in TXT-Datei gespeichert ist, und i kopieren diese in eine andere Datei .txt (mit Java), das Ergebnis ist das gleiche:

23700 5000,2 0.000਍㈀㌀ 㜀 ㄀ ऀ 23720 5067,7 0,670 ਍㈀㌀ 23740 5067,7 1,340 ਍㈀㌀ 㔀 㔀 㘀 㜀 ⸀ 㜀 㜀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 㘀 ഀ ഀ ഀ ഀ ഀ 㔀 ഀ 23760 5067,7 2,010 ਍㈀㌀ 㜀 ऀ 㔀 㜀 ഀ ഀ ഀ ഀ 23780 5067,7 2,680 ਍㈀㌀ 㤀 㤀 ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ 23800 5067,7 3.351 ਍㈀㌀ 㠀 ㄀ 㔀 㔀 㜀 ⸀ ऀ㌀⸀ ऀ㌀⸀ ऀ㌀⸀ 㘀ഀ 23820 5067,7 4.021਍㈀㌀ 㠀 ㌀ ऀ 㔀 㘀 㜀 ⸀ 㜀 ऀ 㐀 ⸀㌀ 㔀 㘀 ഀ 23840 5067,7 4.691਍㈀㌀ 㠀 㔀 ऀ 㔀 㘀 㜀 ⸀ 㜀 ऀ 㔀 ⸀ ㈀ 㘀 ഀ 23860 5067,7 5.361਍㈀ ㌀ 㠀 㜀 ऀ 㔀 㘀 㜀 ⸀ 㜀 ऀ 㔀 ⸀ 㘀 㤀 㘀 ഀ 23880 5067,7 6.031਍㈀㌀ 㠀 㤀 ऀ 㔀 㘀 㜀 ⸀ 㜀 ऀ 㘀 ⸀㌀ 㘀 㘀 ഀ 23900 5067,7 6.701਍㈀㌀ 㤀 ㄀ ऀ 㠀 ㌀ 23920 9577.0 7.372 ਍㈀㌀ ㌀ ㌀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ ഀ 23940 9577.0 8.042 ਍㈀㌀ 㔀 㤀 㔀 㜀 㜀 㜀 ⸀ ⸀ ⸀㌀ ⸀㌀ ⸀㌀ ⸀㌀ ⸀㌀ 23960 9577.0 8.712 € 23980 9577.0 9.382 ਍㈀㌀ 㤀 㤀 㜀 㜀 㜀 㤀 㤀 㜀 㜀 㜀 㜀 㜀 㜀 㜀 㜀

THX An alle

+0

Ich schlage vor, Sie die Excel-Datei als Excel-Datei lesen. z.B. Verwenden Sie die POI-API –

+0

Es gibt keinen Text, sondern kodierten Text. Wenn Sie den Zeichensatz und die Codierung einer ".txt" -Datei nicht kennen, liegt ein Datenverlust vor. Wenn Sie es wissen, geben Sie es in Ihrer Datei/stream/whatever Reader an (normalerweise ist es ein Argument für den Konstruktor.) –

Antwort

1

verstehen, dass heute, Textdateien sind nicht alle ascii. Sie können utf-8, latin-1, utf-16, usw. sein.

Das Problem ist wahrscheinlich, dass Sie beim Kopieren entweder die Textdatei mit dem falschen Textformat öffnen oder mit dem falschen Textformat schreiben. Zum Öffnen richtig

InputStreamReader reader = new InputStreamReader(new FileInputStream(file),"utf-16"); 

Ersatz Dateiformat für utf-16 verwenden

Zum Schreiben verwenden, um ein OutputStreamWriter auf ein FileOutputStream

+0

Ich versuche, an einen Tag zu denken, als Textdateien ASCII waren. Auf der Digital Equipment Corp PDP-11 mit dem Betriebssystem RSX-11, denke ich, könnten sie gewesen sein. (Ich programmierte nicht in APL.) Auf meinem Corona Data Systems IBM-kompatiblen PC mit MS-DOS 1.25 waren sie CP 437. ╟Box-Zeichen waren damals wirklich heiß (wir benutzen sie noch heute in Windows 'tree/f') –