| 

.NET C# Java Javascript Exception

2
Ich nutze in meiner Anwendung mehrere Webdienste. Ich habe bemerkt das in ihren Antworten statt den Buchstaben ä, ü,... irgendwelche merkwürdige Zeichen bekomme. Ich nehme an das dies am Charakter Encoding liegt.

Das gleiche passiert wenn mein J2ME Client etwas zur Serverkomponente schickt.

Wie kann ich solche Probleme lösen? Kann ich die Antworten irgendwie in UTF8 umwandeln, obwohl ich nicht weiß welches encoding sie benutzen? Kann ich das Encoding irgendwie selbst ermitteln?


EDIT: Momentan löse ich das Problem folgendermaßen

public static String germanisieren(String str){
String[] quelle = {"Ãœ","ü","ö","ä","Ä","ß","é","è","ó","ñ",
"’","ã","´","ê´","ç´","Ç´","„","â€"};
String[] ziel = {"Ü","ü","ö","ä","Ä","ß","é","è","ó","ñ","\'","ã","
\'","ê","ç","Ç","„","”"};
for(int x=0;x<quelle.length;x++){
str = str.replace(quelle[x], ziel[x]);
}
return str;
}
News:
28.10.2009
ermin 1,3k 2 7
ermin 1,3k 2 7
Welche (genau) merkwürdigen Zeichen bekommst du denn zurück? Kannst du einen hier abbilden?
Martin Bassus 28.10.2009
10 Antworten
2
Grundsätzlich gilt, das Encoding kann man nur in Ausnahmefällen automatisch erkennen, daher ist es immer besser das encoding zu kennen, und gezielt zu konvertieren.
Da Du von Webdiensten sprichst, könnte Dir folgendes helfen:

Das encoding kann im HTTP Header stehen, oder die HTML Datei selbst enthält das Encoding. Bei XHTML z.b. im XML header:
<?xml version="1.0" encoding="UTF-8"?>

Bei normalen HTML Dateien kann man das so aussehen:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

In Java sind alle Strings Unicode, daher musst Du beim auslesen einfach nur das Charset mit angeben:
InputStreamReader reader = new InputStreamReader(url.openStream(),"ISO-8859-1");

Beim Schreiben solltest Du das Encoding wie oben beschrieben mitteilen, und bei den Schreiboperationen natürlich wieder umwandeln:
OutputStreamWriter writer = new OutputStreamWriter(out,"ISO-8859-1");
28.10.2009
keinhaar 210 1 6
1
Du könntest auch versuchen beim 'Einsammeln' der Daten schon UTF-8 anzufordern, indem Du beim Request einen Accept-Charset Header mitsendest.
Deine Auswertung was denn da wirklich zurück kommt sollte sich dann auch auf die Reqponse Header erstrecken: Content-Type.
Was da drin steht ist das was kommt, wenn es nicht da ist haste nix, wenn es sich mit den anderen Angaben (Content-Intern z.B. meta, xml-header) beisst, dann macht der Content Anbieter was falsch.
28.10.2009
DaSpors 4,2k 2 8
1
So wie Dein Code aussieht, bekommst Du vom Webservice UTF-8 und behandelst es aber beim Empfang wie iso-8859-1 oder ähnliches

Dein InputReader sollte von vorne rein dann UTF-8 erwarten und nicht ISO-xxxx.
01.11.2009
stefan.bachert 395 4
0
So you can get here the website that you always need to get the gta online money generator for free.
15.01.2017
0
This is an interesting site, serious!Really these contents needs to be shared on social networking sites as they are really the brief and great masterpieces here
happy wheels
geometry dash
happy wheels demo
five nights at freddy's
03.02.2017
Kümmert sich eigentlich überhaupt noch irgend jemand um diese Seite? Früher waren die Spams binnen Minuten gelöscht, heute überdauern sie teilweise Wochen.
muffi 03.02.2017
0
Thanks for your post! it contains quite a lot of things to learn! it's great that I known this site!
happy wheels | abcya | fb login
09.02.2017
0
Hello! I'm a Rom, I would like to challenge the whole world with the kind of games follows:
First, Super Smash Flash 2 v0 9b is a perfect upgrade of Super Smash Flash Game. A well-known, addictive game with millions of searches every month. Not many games surpass the number 1.000.000 like this game.

Second, You’ll have to be very ingenious to pass the levels in the game. At a high level, you will face many difficulties.
Rolling Sky 2 Online has 14 levels for you to conquer, if you pass level 14, you really are a top player.

And finally, Drag the ball left or right and avoid all obstacles. Do not deviate from track! Come on! Relentless pursuit of super speed. You can be faster along with the music rhythm!

Rolling Sky Game is a 3D game. There are many different levels of play at the levels of increasing difficulty. At a high level, you will have to overcome many more obstacles, requires ingenuity, agility and persistence.
Are you ready?
09.03.2017
0
Some problems are difficult to solve, but I will try. I have a part time job to cover life. Learning by doing is very tired, but it's my life.
baixar facebook gratis l run 2 unblocked l slitherio l outlook entrar l facebook entrar l facebook iniciar sesión l hotmail entrar l hotmail iniciar sesión l run 2 game l return man 3
23.05.2017
0
In Java sind alle Strings Unicode, daher musst Du beim auslesen einfach nur das Charset mit angeben. siehe hier: javascript obfuscator
26.05.2017
0
I think that you can use Unicode in Java which make all prolem can solve. I uesed to be it,
twitter search
03.07.2017

Stelle deine Java-Frage jetzt!