Probleme Umlaute bei der Ausgabe von Wochentagen auf polnisch
Bobby
- php
Moin
Ich habe per setlocale(LC_TIME,"pl_PL");
die Ausgabe von Wochentage auf polnisch gesetzt.
Ausgabe funktioniert mit:
<?php
// Tageleiste schreiben
for($x=0;$x<7;$x++)
{
$t=mktime(2, 0, 0, $montagmonat, $montagtag+$x, $montagjahr);
echo utf8_encode(strftime("%A",$t));
}
?>
Die Ausgabe erfolgt in einer UTF-formatierten Seite. Dementsprechend ist das Charset gesetzt.
Nun erfolgt die Ausgabe folgendermaßen:
poniedzia³ek wtorek ¶roda czwartek pi±tek sobota niedziela
Wenn ich utf8_encode weglasse erscheinen Fragezeichen statt der Sonderzeichen. Es müsste aber folgendermaßen aussehen:
poniedziałek wtorek środa czwartek piątek sobota niedziela
Wie komme ich nun zu der entsprechenden Ausgabe?
Für Tipps wäre ich dankbar.
Gruß Bobby
Moin
Ich habs selbst gelöst:
setlocale(LC_TIME,"pl_PL.UTF-8");
^^^^^
und
~~~php
<?php
// Tageleiste schreiben
for($x=0;$x<7;$x++)
{
$t=mktime(2, 0, 0, $montagmonat, $montagtag+$x, $montagjahr);
echo strftime("%A",$t);
}
?>
bringen das gewünschte Ergebnis.
Gruß Bobby
--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
### Henry L. Mencken ###
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
## Viktor Frankl ###
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
Hi!
Ich habe per
setlocale(LC_TIME,"pl_PL");
die Ausgabe von Wochentage auf polnisch gesetzt.
echo utf8_encode(strftime("%A",$t));
Das kann so nicht funktionieren. utf8_encode() nimmt generell nur ISO-8859-1-kodierte Strings entgegen, die polnischen Sonderzeichen sind darin aber nicht enthalten. Ein setlocale() kann also keine polnischen Wörter (mit Sonderzeichen) liefern, die ISO-8859-1-kodiert sind.
Wie komme ich nun zu der entsprechenden Ausgabe?
setlocale() UTF-8-kodierte Strings liefern zu lassen hast du ja schon hinbekommen. Als Notlösung, wenn pl_PL nicht in der UTF-8-Variante zur Verfügung stünde, wäre auch noch mit der iconv- oder recode-Extension eine Konvertierung von ISO-8859-2 nach UTF-8 möglich (wobei iconv gegenüber recode zu bevorzugen ist).
Lo!
Moin
Als Notlösung, wenn pl_PL nicht in der UTF-8-Variante zur Verfügung stünde, wäre auch noch mit der iconv- oder recode-Extension eine Konvertierung von ISO-8859-2 nach UTF-8 möglich (wobei iconv gegenüber recode zu bevorzugen ist).
wie bestimme ich das Vorhandensein eines Langsets? Gibt es tatsächlich Serverkonfigurationen die nicht alle Langsets beinhalten?
Gruß Bobby
Hi!
wie bestimme ich das Vorhandensein eines Langsets?
Mit PHP wüsste ich keinen anderen Weg, als es mit setlocale() zu setzen versuchen und dessen Rückgabe auszuwerten. Über die Shell mit locale -a wäre ein Weg, alle aufzulisten.
Gibt es tatsächlich Serverkonfigurationen die nicht alle Langsets beinhalten?
Aber natürlich.
Lo!