Maskierung von Fragezeichen

Status
Nicht offen für weitere Antworten.
I

iome89

Gast
Ich hab einen Text indem "?" zu "ü" ersetzt werden sollen, weil alle Umlautzeichen von einem Programm in andere Zeichen umgewandelt wurden.

ich dachte dann daran:

String text = "Schn?re";
text = text.replaceAll("?", "ü");
System.out.print(text);


Dann bekamm ich aber ein Fehler und hab dann die Forensuche genutzt. Ich bin dann auf folgendes gestoßen:

http://www.java-forum.org/de/viewtopic.php?t=21511

Ich hab das "?" dann maskiert:

String text = "Schn?re";
text = text.replaceAll("\\?", "ü");
System.out.print(text);

Es müsste jetzt funktionieren. Tut es aber nicht. Alle "?" bleiben in meinem Text stehen und werden nicht ersetzt.


----

Ich bin dann auf weitere Suche gegangen. Und jetzt wirds langsam komisch.

Ich nutze POI 3.0 um aus Excel-Dateien die Zellen auszulesen. Dabei stehen ab und zu "?" Zeichen im Text, die ersetzt werden sollen.

Wenn ich jetzt aber den Zelleninhalt einem String zuweise und dann mit:

text = text.replaceAll("\\?","ü");

arbeite. Geht es nicht.


-----

Jetzt kommt aber das komische:

wenn ich schreibe:

String text = "???"+cellcontent;
text = text.replaceAll("\\?","ü");

dann ersetzt er meine eigens angeführten drei "?" Fragezeichen. Aber alles was aus den Zellen kommt wird nicht ersetzt.

Woran liegt das?

Hab auch schon dran gedacht, das die "?" Fragezeichen von POI anders übertragen werden, aber wenn ich die Zelleninhalte in ein Sysout schreibe, dann stehen die "?" Zeichen so da wie man sie haben möchte.
 

norman

Top Contributor
hab nicht wirklich einen schimmer, aber könnte es sein, dass es verschiedene ASCII-codes für das ? gibt? es gibt ja zB auch jede menge, die als leerzeichen dargestellt werden.
hole dir doch mal mit
Code:
char a = StringAusDerZelle.charAt(int);
den ?-buchstaben aus der zelle, und schaue, ob
Code:
(int) a == (int) '?';
true ist ..
 

thE_29

Top Contributor
Knann es sein, das es gar kein Fragezeichen ist, sondern er es nur als solches interpretiert?

Da alle nicht darstellbare Zeichen von ihm als ? ausgegeben werden...

Lass dir mal den char Wert (int wert) von dem Zeichen ausgeben und vergeleichs mit net normalen Fragezeichen!
 
G

Guest

Gast
:D Das ist es gewesen. Tolle Idee. Da denkt man an die komplitziertesten Dinge und dabei ist es nur ein Zeichen was als "?" Zeichen interpretiert wurde.

Der ASCII-Wert für das "?" - Zeichen war 129. Also ein "ü" unter DOS, aber unter Windows ein unbelegtes Zeichen.

THX.
 

Leroy42

Top Contributor
Von mir auch:
:applaus: @ the_29

Ich wollte Gast schon fragen wozu man sowas Verkorkstes (? in ü umwandeln)
braucht, aber nach the_29's Beitrag fiel's auch mir wie Schuppen aus den Augen.
 

thE_29

Top Contributor
Tjo, ich hatte das schon oft ;)

Vorallem wenn C++ Programme via UDP Kyrillische Zeichen schicken...

Yoi....

Ich hatte die ganze Zeit einen byte wert von 65535..

Wie kommen 65535 in einen byte?!?

Das waren ein paar lange Stunden :)

Aber mit den richtigen Convert Methoden und Charsets hat es dann geklappt ;)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben