|
|
iconv v php
|
17.7.2009 10:05
Grumpa
|
Mám v databázi názvy ulic - česky, UTF-8. Na disku mám odpovídající loga v souborech s názvem ulice, ale v ASCII. Takže logicky chci využít existence názvů v databázi.
Použiju v PHP funkci iconv():
$nazev_ul_ascii=strtolower(iconv('UTF-8','ASCII//TRANSLIT',$nazev_ul));
Místo českých písmen tam jsou ale otazníky (Alšova->al?ova). To bych skousnul a hledal jiné řešení, kdyby to ovšem v konzoli na témže stroji nefungovalo správně:
php5 -r "echo strtolower(iconv('UTF-8','ASCII//TRANSLIT',\"Alšova\"));"
vrátí: "alsova".
Jen doplním, že pokus vyvolat konzolový příkaz z php skriptu přes funkci system() skončil s otazníkem v názvu taky.
Hrál jsem si i s iconv_set_encoding(), ale se stále stejným výsledkem. Dost by mi pomohlo, kdyby ten iconv v php skriptu fungoval. Máte nějaké nápady? Díky. |
|
|
Re: iconv v php
|
17.7.2009 10:56
Aleš Hakl
|
To je totiz tim, ze efekt //TRANSLIT je zavisly na locale (odhaduji, ze na LC_CTYPE). Ono se jaksi lisi, co od toho uzivatele mluvici ruznymy jazyky predpokladaji. Reseni je budto v tom PHP locale natvrdo nastavit na nejake ceske a nebo (mozna lepe) se na cele //TRANSLIT vykaslat, a napsat si to pomoci strtr(). |
|
|
Re: iconv v php
|
17.7.2009 11:07
Grumpa
|
Díky. setlocale(LC_ALL, "cs_CZ.UTF-8") opravdu zabralo.
strtr() mě taky napadlo - a mělo to být to náhradní řešení. Možná nakonec u něj skončím, je možná pracnější, ale jistější.:o)
|
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|