MySQL verdreht Umlaute?

MySQL verdreht Umlaute?

am 30.06.2005 19:14:06 von Vinni Vega

Hallo,
ich habe in meinem Script folgende Zeilen:

$v1 = htmlentities($v1);
$v2 = htmlentities($v2);
$select = mysql_select_db($db, $conn);
$sql = "INSERT INTO keywords (v3, v1, v2)";
$sql .= " VALUES(\"".$v3."\", \"".$v1."\", \"".$v2."\")";
$result = mysql_query($sql, $conn);

Die Daten kommen dabei von einem HTML-Formular. Auf meinem Rechner und
meinem alten Server mit PHP 4.3.10 und MySQL 4.1.9 sind in der Tabelle wie
gewünscht alle Umlaute maskiert, also ä etc.

Auf meinem neuen Server mit PHP 4.3.11 und MySQL 4.0.23 steht allerdings z.
B. für ü ü oder für ä ä. Wie kann das sein,
wo muss ich den Fehler suchen?

V.

Re: MySQL verdreht Umlaute?

am 30.06.2005 21:18:53 von Niels Braczek

Vinni Vega schrieb:

> $v1 = htmlentities($v1);
> $v2 = htmlentities($v2);
> [...]
> Auf meinem neuen Server mit PHP 4.3.11 und MySQL 4.0.23 steht allerdings z.
> B. für ü ü oder für ä ä. Wie kann das sein,
> wo muss ich den Fehler suchen?

$v1 = htmlentities(utf8_decode($v1));

HTH
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: MySQL verdreht Umlaute?

am 01.07.2005 10:49:19 von Vinni Vega

> $v1 = htmlentities(utf8_decode($v1));

Danke, hat funktioniert! Auch wenn ich nicht genau verstehe warum. Warum
muss ich die Formular-Daten auf dem einen Server zuerst UTF8-dekodieren und
auf dem anderen nicht?

V.

Re: MySQL verdreht Umlaute?

am 01.07.2005 13:58:48 von Uli Honal

Vinni Vega wrote:

> [..] Warum muss ich die Formular-Daten auf dem einen Server
> zuerst UTF8-dekodieren und auf dem anderen nicht?

Der Browser überträgt die Formulardaten im selben Character-Encoding,=

in dem die Formular-Seite ausgeliefert wird (ausser Du setzt das
"accept-charset"-Atrribut).

Falls Du dafür weder per header() noch per -Tag selbst eine
Angabe gemacht hast, wendet Dein Webserver seine
Standard-Konfiguration an. Schau Dir doch mal die Content-Type Header
an, die beide Server senden.

HTH,

-Uli

Re: MySQL verdreht Umlaute?

am 01.07.2005 17:24:08 von Vinni Vega

> Der Browser überträgt die Formulardaten im selben Character-Encoding,
> in dem die Formular-Seite ausgeliefert wird (ausser Du setzt das
> "accept-charset"-Atrribut).
>
> Falls Du dafür weder per header() noch per -Tag selbst eine
> Angabe gemacht hast, wendet Dein Webserver seine
> Standard-Konfiguration an. Schau Dir doch mal die Content-Type Header
> an, die beide Server senden.

Alles klar, Danke!