Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Charset tritt immer in Aktion, wenn ich von byte Daten zu String konveritere und umgekehrt.
Wenn also der Java-String die falschen Zeichen enthaelt hat man schon eher etwas falsch gemacht und zwar beim Einlesen des Strings und sollte auch genau dort ansetzen.
Die Frage ist halt, wo diese String denn her kommt.
Das Problem, das du beschreibst, waere, dass ich einen String habe, der mit dem falschen CharSet dekodiert wurde.
Richtig waere dann, den String mit diesem falschen CharSet wieder zu kodieren und dann mit dem richtigen (UTF-8) zu dekodieren.
Code:
String decodeMistake= "Blâcky";
String recoded = new String(decodeMistake.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(recoded);
Man sollte aber zuerst versuchen an der Stelle des fehlerhaften Einlesens anzusetzen, anstatt zu so einer Notloesung zu greifen.
Auf jeden Fall ist der URLEncoder hier ohnehin nicht das richtige Werkzeug, denn der soll ja gerade Umlaute etc. in die mit Prozentzeichen verklausierte Form bringen, wie man sie in URLs verwendet. Eine Konvertierung von Unicode-Strings in bestimte Charsets ist das nicht.