Přihlášení

registrace ~ obnova hesla

MyEgo.cz › PHP, setlocale(), strftime() a UTF-8 .

PHP, setlocale(), strftime() a UTF-8

Monday, 16.08.04 - PHP - autor: Radek Hulán

Tak tu řeším jeden problém s locale a češtinou v UTF-8, a nemohu se k tomu dopracovat.

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'>
<html><body>
<?php
 setlocale(LC_TIME,$_GET['a']); 
 header('Content-Type: text/html; charset=utf-8');
 echo "<h1>".strftime("%A, %d.%m.%y",time())."</h1>";
?>
</body></html>

Problém je v tom, že pokud zadám do setlocale cokoliv jiného než czech, je vše anglicky. Toto všechno nefunguje:

Czech_Czech Republic.UTF8
Czech_Czech Republic.65001
Czech_Czech Republic.UTF-8
cs_CZ.utf8
czech.65001
Czech_Czech Republic.UTF 

Předpokládám, že řešení bude naprosto triviální, ale teď je prostě nevidím. Možnost je napsat iconv('iso8859-2','utf-8',strftime(..)), ale to není řešení koncepční.

Monday, 16.08.04 - PHP - autor: Radek Hulán - 14841x

Komentáře:

  1. [1] paja 5.41.broadband2.iol.cz

    Na Linuxu funguje cs_CZ.utf8, na Windows se mi nastavení najít nepodařilo.

    odpověz na tento komentář
    1. na komentář reagoval Radek Hulán — #2
    karma: 0 Monday, 16.08.04, 14:02:22
  2. [2] Radek Hulán

    odpovídá na paja — #1 jenže mě cs_CZ.utf8 nefunguje ani na Linuxu... (webhost)

    odpověz na tento komentář karma: 10 Monday, 16.08.04, 14:14:17
  3. [3] Petr apophis.foxinus.net

    Presne stejny problem mam i ja, ale uz mi nervy nevydrzely a proste sem ten iconv nakonec pouzil. :-(

    odpověz na tento komentář karma: 0 Monday, 16.08.04, 15:24:02
  4. [4] JohnyB ch-14-01.coolhousing.cz

    Na linuxu potvrzuji cs_CZ.utf8, tam ho pouzivam (nema-li ho webhoster, ozvi se mu, prida to...), na win sem taky nezjistil. Podle msdn jsem neco zkusil, treba se i povede nastavit, ale napr. dny v tydnu to vraci stejne v cp1250. IMO utf pro php neni idealni - potebujes si z data vytahnout tri pismenka - misto "stř" dostanes "st?", pac "ř" zabira 3. a 4. znak ...

    odpověz na tento komentář
    1. na komentář reagoval Radek Hulán — #5
    karma: 0 Monday, 16.08.04, 21:54:13
  5. [5] Radek Hulán

    odpovídá na JohnyB — #4 cs_CZ.utf8 zjevně nemá povoleno xhost.cz, už jsem jim posílal email, potřebuji právě dny v týdnu (viz příklad nahoře).

    Ohledně funkce substr(), tu jsem si napsal znovu a lépe, aby počítala s UTF-8 ;)

    odpověz na tento komentář karma: 10 Monday, 16.08.04, 21:59:01
  6. [6] majkls client-1021-03103.pamico.cz

    jediná možnost je požádat je, ať vygenerujou locale pro UTF8.. což je otázka 5 minut... Musí na to být samozřejmě verze glibc (2.2.5 české UTF8 neumí, 2.3.2 už jo).

    odpověz na tento komentář karma: 0 Monday, 16.08.04, 22:45:37

Přidejte nový komentář:

Pro přidání komentáře a hlasování se musíte nejdříve zaregistrovat nebo přihlásit.

Pes hra