utf8 Format und strtolower Funcion
utf8 Format und strtolower Funcion
am 30.07.2006 11:22:22 von Marcel Polty
Hallo,
ich möchte ein Website in mehreren Sprachen erstellen.
Bei einigen Worten, die aus einer MySQL Datenbank kommen, muss ich die
strtolower Funktion anwenden. Die Datenbankabfrage erfolgt per utf8
und die seiten sind entsprechend kodiert.
Nach der Datenbankabfrage sind die Umlaute noch erhalten aber nach der
Anwendung von strtolower sind die Umlaute weg.
Beispiel:
echo $a; = Bäume
$a = strtolower($a);
echo $a; = b?ume
Die Frage ist, wie bringe ich strtolower dazu internationale Zeichen
korrekt umzusetzen.
Oder gibt es eine andere Funktion die das kann?
Vielen Dank
Gruß Marcel
Re: utf8 Format und strtolower Funcion
am 30.07.2006 13:04:58 von Ulf Kadner
Marcel Polty wrote:
> ich möchte ein Website in mehreren Sprachen erstellen.
> Bei einigen Worten, die aus einer MySQL Datenbank kommen, muss ich die
> strtolower Funktion anwenden. Die Datenbankabfrage erfolgt per utf8
> und die seiten sind entsprechend kodiert.
> Nach der Datenbankabfrage sind die Umlaute noch erhalten aber nach der
> Anwendung von strtolower sind die Umlaute weg.
>
> Beispiel:
> echo $a; = Bäume
> $a = strtolower($a);
> echo $a; = b?ume
da must Du auf mb_ funktionen zurueck greifen (wenn Extension nutzbar ist)
header("Content-type: text/html; charset=UTF-8");
$a = 'äöüÄÖÜß';
echo $a,"
\n";
$a = mb_strtolower($a,'utf-8');
echo $a;
MfG, Ulf
Re: utf8 Format und strtolower Funcion
am 30.07.2006 13:55:07 von Marcel Polty
Hallo Ulf,
vielen Dank für den Tipp!
Ulf Kadner schrieb:
>$a = mb_strtolower($a,'utf-8');
Super damit geht es!
Ich hatte nämlich gerade experimentiert und wollte hier bescheid sagen
das ich es hinbekommen habe.
Und zwar damit:
$a = utf8_encode(strtolower(utf8_decode($a)));
Aber die Lösung von Dir ist natürlich eleganter.
Nochmals besten Dank
Gruß Marcel
Re: utf8 Format und strtolower Funcion
am 31.07.2006 10:03:31 von Christian Schmelzer
Marcel Polty wrote:
> Hallo Ulf,
>
> vielen Dank für den Tipp!
>
> Ulf Kadner schrieb:
>
>> $a = mb_strtolower($a,'utf-8');
>
> Super damit geht es!
>
> Ich hatte nämlich gerade experimentiert und wollte hier bescheid sagen
> das ich es hinbekommen habe.
> Und zwar damit:
> $a = utf8_encode(strtolower(utf8_decode($a)));
>
Hallo,
wobei diese Lösung natürlich nur funktioniert, wenn du nur ISO-8859-1
Zeichen verwendest und damit UTF-8 ja gar nicht brauchst. Nutzt du weitere
Zeichen aus dem UTF-8 Bereich, ist der String anschließend im Eimer.
Christian
Re: utf8 Format und strtolower Funcion
am 31.07.2006 11:27:07 von Marcel Polty
Hallo Christian,
"Christian Schmelzer" schrieb:
>Hallo,
>wobei diese Lösung natürlich nur funktioniert, wenn du nur ISO-8859-1
>Zeichen verwendest und damit UTF-8 ja gar nicht brauchst. Nutzt du weitere
>Zeichen aus dem UTF-8 Bereich, ist der String anschließend im Eimer.
>
>Christian
Danke für den Hinweis, aber ich habe ja ohnehin die Lösung von Ulf
genommen ($a = mb_strtolower($a,'utf-8');)
Und dadurch überhaupt erst die mb_* Funktionen kennen gelernt. (Ich
hatte vorher noch nichts mit den internationalen Zeichen zu tun.)
Marcel