Autor | Zpráva | ||
---|---|---|---|
tomino Profil |
#1 · Zasláno: 3. 5. 2006, 11:18:41 · Upravil/a: tomino
Dobrý den,
ve své aplikaci používám kódování v UTF-8 - ve skriptech i v databázi. Co se týče zobrazování, vkládání a editace dat, vše funguje bez problému. Při vkládání dalšího záznamu se vždy provede kontrola, zda se tentýž záznam už v databázi nevyskytuje. Pro porovnání řetězců používám funci mb_strtolower($retezec, "auto"). V manuálu PHP z příkladů vyplývá, že nastavení na "auto" je nutné (znaky anglické abecedy se do databáze vloží v kodovani ASCII, i když je atribut nadefinován jako UTF-8). Mnohokrát proběhlo volání funkce mb_strtolower(), která převádí řetězce na malá písmena, v pořádku. Občas se ale stane, že skript vrátí chybu: Warning: mb_strtolower(): Unable to detect character encoding in JMENO_SCRIPTU.PHP a cislo radku. Prošel jsem kód a určitě v něm chyba není. S touhle chybou si nevím rady. Samotné potlačení pomocí @ před funkci asi není nejlepším řešením. Setkal jste se s tím někdo. Jak porovnáváte řetězce v UTF-8. Četl jsem o binárně bezpečném porovnání, ale když jsem ho zkoušel, nefungovalo mi. Předem dík za odpověď. tomino* |
||
Oswald Profil |
#2 · Zasláno: 3. 5. 2006, 12:30:26
Zkusil bych na začátku volat mb_internal_encoding('UTF-8').
http://php.ftp.cvut.cz/manual/en/function.mb-internal-encoding.php |
||
tomino Profil |
#3 · Zasláno: 3. 5. 2006, 15:12:13
Zkusím to, díky. Ještě jsem z manuálu vyčetl tohle: $str = mb_strtolower($str, mb_detect_encoding($str));
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0