Kis- és nagybetűk UTF-8-ban, PHP/MySQL
Sziasztok!
Bíbelődök egy kóddal amit kaptam, ami pontosan azt takarja, hogy próbálok bele UTF-8 supportot szenvedni - és persze egy érdekes problémába ütköztem, amit nem nagyon tudok kitalálni, úgyhogy bennetek bízom :o)
Van egy array-em ($mystuff), amit mysql-bol szíjjok:
Ebből próbálnék megy olyat alkotni, hogy az első karakterek betűinek létezésekor adott betű link lesz (avagy értelmesebben ABC szerinti brózolásról van szó). Eredendően latin1 a cucc, és így néz ki a dolog:Ebbe kéne belenyomnom, hogy UTF-8 esetén is megalálja az első betűket, ha lower, ha upper. Nincs valami tippetek, hogy hogyan tudom megtalálni UTF-8-ban az adott betű capital párját akár ékezetesek esetén is?
Előre is köszönöm,
Dzsó
■ Bíbelődök egy kóddal amit kaptam, ami pontosan azt takarja, hogy próbálok bele UTF-8 supportot szenvedni - és persze egy érdekes problémába ütköztem, amit nem nagyon tudok kitalálni, úgyhogy bennetek bízom :o)
Van egy array-em ($mystuff), amit mysql-bol szíjjok:
"SELECT DISTINCT LOWER(SUBSTRING(mystring_name, 1, 1)) AS A FROM $db_table_mytable"
Ebből próbálnék megy olyat alkotni, hogy az első karakterek betűinek létezésekor adott betű link lesz (avagy értelmesebben ABC szerinti brózolásról van szó). Eredendően latin1 a cucc, és így néz ki a dolog:
<?php
while (!$mystuff->EOF) {
if (ord($mystuff->fields[0]) >= 192 and ord($mystuff->fields[0]) <= 222 and ord($mystuff->fields[0]) != 215) // "Select lower"
$mystuff->fields[0] = chr(ord($mystuff->fields[0])+32); // above doesn't work with ascii > 192, this fixes it
$let .= $mystuff->fields[0]; // it could be "a" or "A", so just go with the only returned item
$mystuff->MoveNext();
}
Előre is köszönöm,
Dzsó
lower miért nem elég?
<Nincs cím>
Kösz a reply-t :o)
Valami pedig valahgyan nem stimmöl. Ilyenek vannak most benne teszt jelleggel a táblában:
Áram
áram
élelem
Éleskés
elemér
Csinálok egy ilyet:
A � e
Akárhogy is nézem valahol valamié elszáll és arra gyanakszom, hogy az ASCII-vé alakításnak (ord) van hozzá köze. Se Á se á se É se é.
:o/
Any tipp?
tábla által használt kódolás
akkor more info
Kodolas mindenhol UTF-8 ami mukodik is mint latod above, a select *-nal rendesen le is szippancsa a dolgot :-)
Verzio: 5.0.18 (berkdb perl ssl utf8 tamogatasokkal)
két dologról beszélsz
<Nincs cím>
Az első postold kódban volt ord :o) És éppen ez az, amit nem akartam használni, node sikerült idő közben megoldanom a dolgot.
Az igazi ok pedig amiért php-ben oldottam meg a sort-ot, a teljes magyar ÁBC kezelése (gondolok itt a d/dz/dzs sortolására úgy, hogy betűkénti browsoláskor mindig csak az aktuális jelenljen meg, avagy a Dániánál nem kell látnom a Dzsem-et).
Köszönöm minden esetre :o)
Üdv:
joschy