Zadejte hledaný výraz...

Nejde mi iconv

bismarc
verified
rating uzivatele
(1 hodnocení)
18. 6. 2012 12:01:33
Nazdarek,
chcel som zmenit text s diakritikou na text bez diakritiky pomocou funkcie iconv, no iconv mi nevracal ziadny text
setlocale(LC_ALL, 'cs_CZ.UTF-8');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň");
skusal som nasledovne:
v prikazovom riadku som si nechal vypisat podporovane setlocale $ locale -a . cs_CZ.UTF-8 medzi nimi bola.
potom som nasiel na nejakych forach, ze ked dali parameter 'ASCII//TRANSLIT', tak im to tiez nic nevypisalo, ale ked dali 'ASCII//TRANSLIT//IGNORE' tak mali vystup...
A este som sa pre istotu presvedcil, ci mam ten text v utf-8 kodovani
echo mb_detect_encoding("Žluťoučký kůň"); //toto mi vratilo UTF-8, takze to by malo byt ok
Any ideas?
Dakujem za rady
18. 6. 2012 12:01:33
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776426
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 6. 2012 12:26:27
V dokumentaci je zmíněn tento příklad:
setlocale(LC_CTYPE, 'POSIX');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůňn");
// ?lu?ou?k? k??
setlocale(LC_CTYPE, 'cs_CZ');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůňn");
// Zlutoucky kun
?>
Když jsem to ale kdysi řešil, tak jsem narazil na to, že iconv v php může být realizován přes dvě různé knihovny, kdy jedna TRANSLIT umí a druhá ne. Bohužel teď nemůžu najít, jak se to dá ověřit.
18. 6. 2012 12:26:27
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776425
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 6. 2012 12:28:35
... a už jsem to našel. Jsou to knihovny glibc a libiconv. Více třeba zde - http://stackoverflow.com/questions/5048401/why-doesnt-translit-work
18. 6. 2012 12:28:35
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776424
bismarc
verified
rating uzivatele
(1 hodnocení)
18. 6. 2012 12:38:58
aha, ja mam tu druhu knihovnu libiconv, takze na iconv sa jednoducho neda spoliehat, dakujem
18. 6. 2012 12:38:58
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776423
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 6. 2012 12:41:02
Já používám na odstranění diakritiky toto:
function diakritika($in) {
return strtr($in, $array(
'ä' => 'a', 'Ä' => 'A', 'á' => 'a', 'Á' => 'A', 'č' => 'c', 'Č' => 'C', 'ć' => 'c', 'Ć' => 'C', 'ď' => 'd', 'Ď' => 'D', 'ě' => 'e', 'Ě' => 'E', 'é' => 'e', 'É' => 'E',
'ë' => 'e', 'Ë' => 'E', 'í' => 'i', 'Í' => 'I', 'ľ' => 'l', 'Ľ' => 'L', 'ń' => 'n', 'Ń' => 'N', 'ň' => 'n', 'Ň' => 'N', 'ó' => 'o', 'Ó' => 'O', 'ö' => 'o', 'Ö' => 'O',
'ô' => 'o', 'Ô' => 'o', 'ř' => 'r', 'Ř' => 'R', 'ŕ' => 'r', 'Ŕ' => 'R', 'š' => 's', 'Š' => 'S', 'ś' => 's', 'Ś' => 'S', 'ť' => 't', 'Ť' => 'T', 'ú' => 'u', 'Ú' => 'U',
'ů' => 'u', 'Ů' => 'U', 'ü' => 'u', 'Ü' => 'U', 'ý' => 'y', 'Ý' => 'Y', 'ž' => 'z', 'Ž' => 'Z', 'ź' => 'z', 'Ź' => 'Z'));
}
Není tam ale úplně všechno a je to stavěné spíš na češtinu.
18. 6. 2012 12:41:02
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776422
bismarc
verified
rating uzivatele
(1 hodnocení)
18. 6. 2012 12:44:40
ano, aj ja som to pouzival a preto som chcel vyskusat iconv ze nikdy som to nemal kompletne...
18. 6. 2012 12:44:40
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776421
Já používám toto - od Vrány
http://php.vrana.cz/vytvoreni-pratelskeho-url.php
/** Vytvoření přátelského URL
* @param string řetězec v kódování UTF-8, ze kterého se má vytvořit URL
* @return string řetězec obsahující pouze čísla, znaky bez diakritiky, podtržítko a pomlčku
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function friendly_url($nadpis) {
$url = $nadpis;
$url = preg_replace('~+~u', '-', $url);
$url = trim($url, "-");
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
$url = strtolower($url);
$url = preg_replace('~+~', '', $url);
return $url;
}
?>
18. 6. 2012 13:17:45
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776420
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
18. 6. 2012 13:21:07
a tam je právě ten translit, který nefunguje všude jak má
18. 6. 2012 13:21:07
https://webtrh.cz/diskuse/nejde-mi-iconv/#reply776419
Pro odpověď se přihlašte.
Přihlásit