MySQLi karakterkódolás probléma. Valaki segítene?
Egy üzenőfal szkriptet készítek. Van egy adattáblám, abban van 4 oszlop: id, név, dátum, url
Van egy űrlap, ahol megadják az adatokat, ezekre ráteszem a htmlspecialchars függvényt. Minden pöpecül működik, kivéve persze a karakterkódolást. Bárhogy állítom be, ha ő,ű, stb betűket írok be a mezőkbe egyszerűen üresen hagyja az adatbázisban a táblában azt a cellát. Hogyan tudnám ezt orvosolni?
mindent UTF8 -ra és nem lesz gondod.
Fájl, HTML és PHP header, SQL...
Még annyi hogy a fájloknál UTF8 BOM nélkülibe tárold.
Ez azt jelenti hogy a speciális karakterek UTF8 -as kódolásúak, így legtöbb nyelv speciális nem Latin1 -es karaktere is elérhető.
De nincs a fájl elején azok a speciális karakterek, amik header módosításánál gondot okozhat.
És igen, az adatbázis kapcsolat, tábla, cella tulajdonságainál is be kell állítani. (utf8_general_ci)
MySQLi: mysqli_query($conn,'SET NAMES utf8');
PHP: header("Content-Type: text/html; charset=utf-8");
HTML 1 - 4 -ben: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
HTML 5 -ben: <meta charset="utf-8" />
Ha az adatbázis úgy van létrehozva, nem kell táblánként és mezőnként átállítani, csak ha utólag van átállítva. (Cella itt nincs.)
Azt tudja valaki, miben különbözik a general_ci meg a hungarian_ci?
A rendezés mellett az összehasonlítás a különbség még.
utf8_general_ci -nél nem számít a kis-/nagybetű, az ékezet. (pl. o = ö, o = ó)
utf8_hungarian_ci -nél szintén nem számít a kis-/nagybetű, de az ékezet már nem teljesen mindegy (pl. o <> ö, csak o = ó).
Felhasználási területtől függ, hogy melyiket érdemes használni. Én pl. bizonyos keresések miatt az utf8_general_ci -t használom, de talán megfelelő lenne az utf8_hungarian_ci is.
De van olyan hely, ahol meg utf8_bin -t használok, mert csak a teljesen megegyezőkre van szükségem...
Köszönöm a többieknek is a választ. A fájl eleve UTF-8 bom nélkülre volt állítva, ezért is nem értettem hogy miért nem működik. A tábla úgy néz ki eleve utf8_general_ci-re volt beállítva. Nekem jó ez így, úgyis csak egy egyszerű üzenőfal, de azért köszi a tippeket.
A cellát csak azért írtam mert más szó nem jutott az eszembe erre :D
#7: pont ezért ajánlom az utf8_general_ci -t.
Mert ha csinál keresőt, igaz pontatlan lesz, de sok esetben hasznos, mert ugye az ó ö ő ú ü ű í á é -t elég sok féle képen betudják írni attól függően milyen a kliens eszköz:
a á à â ä ǎ ă ā ã å
e é è ê ë ě ĕ ē ẽ ė
i í İ î ï ǐ ĭ ī ĩ ı
o ó ò ô ö ǒ ŏ ō õ ő
u ú ù û ü ǔ ŭ ū ũ ů ű
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!