Probleme mit Umlauten

Status
Nicht offen für weitere Antworten.

Arndtinho

Erfahrenes Mitglied
Hallo,

für ein Prokekt nutze ich PHP und Smarty.
Ich übergebe an das Templatefile verschiedene Werte, unter anderem auch Städtenamen. Nun werden alle Städt mit Umlauten (Köln, Düsselorf) nicht korrekt dargestellt. Anstatt des Umlautes steht ein Fragezeichen. Die Templates sind alle im UTF-8 Format abgespeichert. Auch mit einem Modifier es nicht.
PHP:
function smarty_modifier_utf8_encode( $string )
{
return utf8_encode($string);
}
HTML:
{ $city|utf8_encode }
Wie kann ich das Problem lösen. Die Städtenamen kommen nicht aus einer Datenbank sondern aus einem Eingabefeld.

Gruß,
Arndtinho
 
Wenn du mit UTF-8 arbeitest, sollten die Formularwerte am besten auch schon UTF-8-kodiert sein. Daher füge mal das Attribut accept-charset="utf-8" zum Formular hinzu.
 
ja, ich denke schon. wie kann ich das denn prüfen?

Das komische an der Sache ist, dass wenn ich zum Beispiel 'Köln' direkt hardcodet in den Quellcode schreibe, dann funktioniert das mit dem Umlaut.

Habe soeben festgestellt, dass das php-file schon Probleme mit dem Umlaut hat. Es bekommt den Stadtnamen per GET übergeben. Das habe ich mir mal ausgeben lassen. Aber auch das php-file ist als utf-8 gespeichert.
 
Zuletzt bearbeitet:
Also, ich übergebe den Stadtnamen per GET und lese ihn dann wieder aus:
PHP:
$city = $_GET[ 'city' ];
Damit der Stadtname korrekt (1.Buchstabe = Großbuchstabe) dargestellt wird, machte ich folgendes:
PHP:
$city = strtoupper( substr( $city, 0, 1 ) ).strtolower( substr( $city, 1, strlen( $city ) ) );
Da macht PHP irgdenwas, was mir die Umlaute zerschiesst. Was genau, kann ich Dir nicht sagen. Ich habe es nun so geändert:
PHP:
$city = strtoupper( substr( $city, 0, 1 ) ).substr( $city, 1, strlen( $city ) );
Und nun klappt es.
 
Status
Nicht offen für weitere Antworten.
Zurück