Autor Zpráva
Gandalf
Profil *
Poradí někdo jak zjistit správnou délu řetězce v UTF-8, někde jsem o tom četl, ale nemohu to dohledat.

Moc díky
Acci
Profil
mb_strlen
Gandalf
Profil *
mb_strlen

To jsem zkusil, ale vrací to sále chybnou délku. Vyzkoušel jsem následující a funguje to...

<?php
$retezec = "ščřžýáíé";
$retezec = iconv("UTF-8", "CP1250", $retezec);
echo strlen($retezec);
?>
souki
Profil
Gandalf
trochu neefektivní. mb_strlen by fungovat měl. Zkontroluj jestli máš dobře nastavené multibyte funkce
kachnak
Profil
ani mne nefunguje strlen ani mb_strlen a ked pouzijem to iconv tak mi to pise otazniky.
Yur4Y
Profil
Súbor musíte mať uložený v rovnakom kódovaní, aké používate ako druhý parameter fcie mb_strlen(). A ak chcete takýto text vypisovať, deklarujte kódovanie v HTTP hlavičke alebo v <meta>.
kachnak
Profil
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
header('Content-Type: text/html; charset=utf-8');
$slovo="ý";
$dlzka=mb_strlen($slovo);
echo"$slovo - $dlzka";
?>

stale mi to pise ze dlzka je 2
ked otvorim subor tak pise ze je v kodovani utf-8
Yur4Y
Profil
Za prvé - header() vám takto fungovať nebude, pretože ste už odoslali výstup, a to je <meta> tag. Zapamätajte si, funkcie, ktoré modifikujú HTTP hlavičku, ako header(), session_start() a ďalšie fungujú len vtedy, ak ich použijete úplne na začiatku súboru.
Za druhé - mb_strlen má síce nepovinný druhý parameter, ale veľmi pochybujem, že v php.ini máte defaultné kódovanie UTF-8. Použite toto:
$dlzka=mb_strlen($slovo, 'UTF-8'); 
kachnak
Profil
dakujem.. toto som potreboval funguje to super.

takze ak mam stranku php v tvare

php kod

html kod

tak ked prvy php prikaz dam odoslat hlavicku
header('Content-Type: text/html; charset=utf-8');
potom uz nemusim pisat meta hlavicku na kodovanie?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: