Nun, encode() ersetzt ja öäü's mit irgendwie %FD oder so. Diese werden dann so in die Datenbank gespeichert.
Umlaute in MySQL
Einklappen
X
-
Original geschrieben von TobiaZ
Autsch!
Kommentar
-
Original geschrieben von andygyr
Nun, encode() ersetzt ja öäü's mit irgendwie %FD oder so. Diese werden dann so in die Datenbank gespeichert. Damit diese &FD's nicht als Text angezeigt werden, und als alternative zu unencode() hab ich urldecode() verwendet.
Original geschrieben von andygyr
Wenn ich es aber dabei lasse, werden Vierecke angezeigt, da die öüä's direkt so ins HTML eingetragen werden. Mit htmlentities() werden diese als &Uu.ml; (ohne .) eingetragen.
Anstatt dass du endlich mal sauber mit einem Zeichensatz programmierst, konvertierst du ständig mit irgendwelchen Funktionen hin und her und wunderst dich dann, dass Probleme auftreten. Es wird wahrscheinlich nicht lange dauern, bis du wieder ein Problem damit haben wirst, weil du immer nur den Symptomen hinterherläufst, aber nicht die Ursache suchst.
Wenn alles passen würde, wäre weder htmlentities noch urldecode notwendig. Das zeigt nur, dass Grundlegend bei deinem Programm ertwas nicht stimmt. Und du versuchst ständig das Problem unter den Teppich zu kehren, aber der Dreck kommt immer wieder hervor gekrochen.Zuletzt geändert von h3ll; 26.04.2009, 13:04.
Kommentar
-
Ok.
Wenn ich htmlentities und urldecode wegnehme bekomme ich ca. %E4%E4%E4%E4%E4%E4%E4%E4%E4%E4%E4%E4%E4%FC%FC%FC%FC%FC%FC%FC%FC%F6%F6%F6%F6%F6%F6%F6%F6%F6%F6
Hier nochmal mal meine Einstellungen:
Zeichensatzt der Tabelle: latin1
Sortierung: latin1_swedish_ci
SET NAMES latin1;
Meta: content="text/html; charset=ISO-8859-1"
Eintragung: htmlentities($text)
Eintragung: Der Text wird mit der js Funktion encode() per GET parameter an eine PHP Datei geschickt welche den Text einträgt. Bei der Ausgabe gebe ich direkt den Text aus, ohne irgendwelche Funktion drum herum.
Mich nimmt nur wunder ob wirklich ein zecihensatzt aus %E4%E4%E4%E4%E4%E4%E4 umlaute machen kann!
Auch im JS kann ich kein zweifache encode() Finden:
Code:function setComment(str) { xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="tools/ajax/set_comment.php"; url=url+"?text="+str; url=url+"&watch="+$_GET['watch']; //url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged2; xmlHttp.open("GET",url,true); xmlHttp.send(null); return false; } -------------- form onsubmit="return setComment(escape(this.comment.value));"> <textarea name="comment" rows="3" cols="40"></textarea><br /> <input type="submit" value="Absenden" /> </form>
Zuletzt geändert von andygyr; 26.04.2009, 14:03.
Kommentar
-
-
Original geschrieben von andygyr
Mich nimmt nur wunder ob wirklich ein zecihensatzt aus %E4%E4%E4%E4%E4%E4%E4 umlaute machen kann!
Also irgendwo encodierst du einmal zuviel, und das gehört weg.
Kommentar
Kommentar