php verschluckt Umlaut bzw. wird er falsch dargestellt

22/02/2014 - 14:08 von Bernd Scharf | Report spam
Hallo,
dieses Datums-Formatierungssachen sind ja unheimlich ...
ich probiere schon eine Stunde rum. Also:

diese Daten kommen rein:
'%a., %d. %b' '2014-03-14' '20:00:00'

$date = strftime($format, strtotime( $date.' '.$time ));

gibt aus: Fr., 14. Mrz.
?? bzw. auf einem anderen Server mit php5.4 dieses Mrz. mit ner kleinen
Raute anstatt à.


Ich habe schon diverses probiert, mit
<http://www.php.net/manual/de/functi...de.php>
etc., bekomme das à aber nicht zu sehen.

die Seite làuft als
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />


vielleicht kann mir da jemand etwas helfen?
Danke schon mal,
Gruß, Bernd
 

Lesen sie die antworten

#1 Christoph Michael Becker
22/02/2014 - 15:20 | Warnen spam
Bernd Scharf schrieb:

dieses Datums-Formatierungssachen sind ja unheimlich ...
ich probiere schon eine Stunde rum. Also:

diese Daten kommen rein:
'%a., %d. %b' '2014-03-14' '20:00:00'

$date = strftime($format, strtotime( $date.' '.$time ));

gibt aus: Fr., 14. Mrz.



Das ist das auch so "beabsichtigt", siehe strftime()[1]:

| %b - abgekürzter Name des Monats, abhàngig von der gesetzten Umgebung

Du willst wohl "%B".

?? bzw. auf einem anderen Server mit php5.4 dieses Mrz. mit ner kleinen
Raute anstatt à.



Mal angenommen, dass Du auf diesem Server "%B" verwendest, dann stimmt
"Màrz" schon; aber das wird eben nicht als UTF-8 geliefert, sondern
"ANSI" kodiert (möglicherweise ISO-8859-1), und dieses "Byte" kann unter
UTF-8 nicht dargestellt werden, weshalb der Browser dann den Unicode
REPLACEMENT CHARACTER (U+FFFD) anzeigt.

Ich habe schon diverses probiert, mit
<http://www.php.net/manual/de/functi...de.php>
etc., bekomme das à aber nicht zu sehen.



Du solltest eine Funktion verwenden, die in der Lage ist, die Zeichen in
eine andere Zeichenkodierung zu überführen. Evtl. funktioniert für Dich
utf8_encode()[2]; ansonsten schau Dir mal mb_string bzw. iconv an.

die Seite làuft als
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />



Du solltest die verwendete Zeichenkodierung besser per HTTP Header-Feld
setzen.[5]

[1] <http://www.php.net/manual/de/functi...me.php>
[2] <http://www.php.net/manual/de/functi...de.php>
[3] <http://www.php.net/manual/de/book.mbstring.php>
[4] <http://www.php.net/manual/de/book.iconv.php>
[5] <http://www.w3.org/International/O-charset>

Christoph M. Becker

Ähnliche fragen