Encoding Unicode Textfile

najjannaj

Aktives Mitglied
Hallo, ich habe folgende Textdatei:


input.txt
ben\u00f6tigt\r\nman eine Oberfl\u00e4che, m\u00f6chte aber nicht die \u00fcbliche

nun lese ich die Datei wie folgt ein:
Java:
FileInputStream fis = new FileInputStream("D:\\input2.txt");
		InputStreamReader isr = new InputStreamReader(fis, "UTF8");
		StringBuilder buffer = new StringBuilder();
		int c;
		while ((c = isr.read()) != -1) {
			buffer.append((char) c);
		}
		String str = buffer.toString();

Nun habe ich das Problem das die Zeichen \uXXXX nicht ersetzt werden. Wie kann ich diese Zeichen nun ersetzten? Ich habe einiges über Unicode gelesen, aber keine Lösung gefunden wie ich die Zeichen ersetzen kann.. `Hat jemand einen Tipp für mich? Ich weiß wenn ich new Character('\u00f6') erstelle, bekomme ich den Character den ich möchte. Das finden von \uXXXX in der Textdatei ist auch kein Problem. Aber einen String in ein Char zu wandeln ist leider nicht möglich. Jemand weitere Ideen?

Vielen Dank im vorraus!
 
G

Gast2

Gast
Warum nicht. Muss man halt die Datei parsen und die \u Escape sequencen rausschnippeln.
Den char bekommst du so:

Java:
String s = "\u00f6";
char c = s.charAt(0);

EDIT: Denkfehler... s wäre ja "\\u00f6"... hmpf... Denke mal weiter
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
So - jetzt aber...

Wenn du die escapten Strings hast, z.B. \\u00f6, schneidest du das \ ab und machst aus der hexamdecimal zahl ein int und daraus ein char:
Java:
String s ="00f6";
char c = (char)  Integer.parseInt(s, 16);
System.out.println(c);

Also das hier funktioniert soweit:
Java:
        FileInputStream fis = new FileInputStream("D:\\input2.txt");
		InputStreamReader isr = new InputStreamReader(fis, "UTF8");
		StringBuilder buffer = new StringBuilder();
		int c;
		while ((c = isr.read()) != -1) {
			buffer.append((char) c);
		}
		String str = buffer.toString();
		char[] chars = str.toCharArray();

		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < chars.length; i++) {
			if (chars[i] == '\\') {
				if (chars.length > i + 5 && chars[i + 1] == 'u') {
					try{
					    char x = (char) Integer.parseInt(str.substring(i+2, i+6), 16);
					    sb.append(x);
					    i = i + 5;
					} catch(NumberFormatException e){
					    //not a hex encoding
					    sb.append(chars[i]);
					}
				} else if (chars.length > i + 1 && chars[i + 1] == 'n') {
					sb.append('\n');
					i++;
				} else if (chars.length > i + 1 && chars[i + 1] == 'r') {
					sb.append('\r');
					i++;
				}  else {
					sb.append(chars[i]);
				}
			} else {
				sb.append(chars[i]);
			}
		}
		System.out.println(sb.toString());
 
Zuletzt bearbeitet von einem Moderator:

najjannaj

Aktives Mitglied
Danke fassy! Hat genau so fast geklappt. Leider hat er bei "Oberfl\u00e4che" bei \u00e4 ein 0xf1(BASIC_LATIN) Zeichen eingefügt. Gelöst habe ich es wie folgt...

Java:
try {
	// convert hex digit to a integer and cast to char
	char x = (char) Integer.parseInt(source.substring(i + 2, i + 6), 16);
	if (x != ((char) 31)) {
		sb.append(x);
	}
	i = i + 5;
} catch (NumberFormatException e) {

Leider hab ich keine Idee warum genau er das macht..

Vielen Dank nochmal!
 
G

Gast2

Gast
Hmm, das kann ich nicht nachvollziehen.

Ich lade
ben\u00f6tigt\r\nman eine Oberfl\u00e4che, m\u00f6chte aber nicht die \u00fcbliche

Und bekomme raus:
man eine Oberfläche, möchte aber nicht die übliche

Exact mit dem Code den ich oben geposted habe. Was stellst du denn mit dem String weiter an? str.getBytes("UTF-8") sollte dir eigentlich nur UFT8 Bytes zurückgeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
X Encoding in Tomcat Allgemeine Java-Themen 2
B Input/Output Encoding ISO->UTF8 Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
M Datei wird nicht vollständig geschrieben (FileOutputStream, OutputStreamWriter, Encoding) Allgemeine Java-Themen 6
C Encoding Problem Windows Allgemeine Java-Themen 9
R Encoding FileWriter Allgemeine Java-Themen 1
C Encoding problem Allgemeine Java-Themen 22
C BASE64 encoding von Binärdaten Allgemeine Java-Themen 4
M Charset Encoding für Dateinamen Allgemeine Java-Themen 4
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
S Encoding-Problem (?) Allgemeine Java-Themen 5
lumo encoding einer text-datei Allgemeine Java-Themen 2
Y CSV Encoding Problem Allgemeine Java-Themen 6
A bufferedReader readline, encoding Allgemeine Java-Themen 5
S File encoding feststellen Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
P Textfiles laden - egal welches Encoding Allgemeine Java-Themen 9
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
P Textfile Encoding herausfinden Allgemeine Java-Themen 2
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
R Encoding Allgemeine Java-Themen 10
B platform's default character encoding? Allgemeine Java-Themen 10
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
M Problem mit Base64 Encoding Allgemeine Java-Themen 2
M Encoding automatisch erkennen Allgemeine Java-Themen 4
M Standart Encoding des OS ermiteln Allgemeine Java-Themen 4
S [Base64] Encoding von String nicht korrekt Allgemeine Java-Themen 5
byte String Encoding Allgemeine Java-Themen 9
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
J Unicode Darstellung mit 5 chars Allgemeine Java-Themen 9
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
L UTF8 to Unicode Allgemeine Java-Themen 9
mrBrown Unicode-WhiteSpaces aus String entfernen Allgemeine Java-Themen 14
S Input/Output Unicode Umwandlung Allgemeine Java-Themen 2
H Unicode ausgeben ohne Umwandlung - geht das? Allgemeine Java-Themen 3
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
J Unicode als String Allgemeine Java-Themen 6
R kopieren von Dateien und Verzeichnissen - UNICODE? Allgemeine Java-Themen 4
P JavaDoc und Backslashes: "Invalid unicode" Allgemeine Java-Themen 3
H Exponenten mit UNICODE Allgemeine Java-Themen 4
M Unicode 06 (Arabic) Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
P Unicode-Problem: Griechische Buchstaben Allgemeine Java-Themen 11
J Unicode: cmd parameter (main args); exec params; filenames Allgemeine Java-Themen 2
Daniel_L ASCII in UniCode umwandeln? Allgemeine Java-Themen 14
Luma Unicode Steuerzeichen von druckbaren Zeichen trennen Allgemeine Java-Themen 10
L unicode-zeichen in ein txt-File schreiben Allgemeine Java-Themen 3
L unicode Allgemeine Java-Themen 5
F Unicode zu ASCII konvertieren Allgemeine Java-Themen 5
oliver1974 Wie ResourceBundles mit Unicode Zeichen korrekt einlesen? Allgemeine Java-Themen 4
I Eignung eines Zeichensatzes zur Kodierung eines Unicode-Str. Allgemeine Java-Themen 3
D Zeilenweises auslesen aus einer Unicode CSV-Datei Allgemeine Java-Themen 7
U unicode oder was? Allgemeine Java-Themen 14
R Abwärtskompatibilität des Unicode Allgemeine Java-Themen 2
R Unicode (Kyrillisch) Allgemeine Java-Themen 15
byte Unicode Sonderzeichen Allgemeine Java-Themen 2
B Unicode für Kreuz gesucht Allgemeine Java-Themen 2
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
S Unicode-Zeichen erstellen/ Kodierung Allgemeine Java-Themen 4
G Unicode file auslesen Allgemeine Java-Themen 11
C Unicode für Promille-Zeichen Allgemeine Java-Themen 5
U Unicode char kyrillisch Allgemeine Java-Themen 10
G Unicode eines Zeichens ermitteln Allgemeine Java-Themen 5
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
S Prüfen ob Textfile existiert Allgemeine Java-Themen 9
M Textfile erstellen Allgemeine Java-Themen 11
eskimo328 Textfile nach Stromausfall leer Allgemeine Java-Themen 5
T Input/Output Zeilenumbrüche beim exportieren in eine Textfile Allgemeine Java-Themen 7
D welchen line brak benutzt ein geg. textfile Allgemeine Java-Themen 3
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
E TextFile in Array reinspeichern Allgemeine Java-Themen 3
G HTML-Datei einlesen, Plain Text in Textfile speichern Allgemeine Java-Themen 4
P Textfile -> Array -> JTable Allgemeine Java-Themen 9
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
I Attribute in Textfile auslesen Allgemeine Java-Themen 13
M Zugriff auf Resource (Textfile) in einem Jar? Allgemeine Java-Themen 2
S TextFile aus JAR auslesen Allgemeine Java-Themen 3
R In Textfile schreiben - append Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben