Hibás karakterkódolás - hihetetlen...
Sziasztok!
"Kis" gondban vagyok. Egyszerűen nem értem, nem találok rá magyarázatot, de hátha ti tudtok valami okosat mondani. :)
Szóval, van egy php űrlapom, ami küldés után szépen eltárolja az adatokat, ezután ezeket az adatokat ki írja a felhasználónak echo-ba.
Valami oknál fogva így jelenik meg pl. a, nyilván nem valamiért, hanem valahol rossz a karakter kódolás, csak azt nem tudom, hogy hol.
phpMyAdminban az adatok, melyek kiírásra kerülnek jók, helyesen vannak megjelenítve. Szóval mikor echo-ban kiírom ezeket az adatokat akkor történhet valami "magic".
Az űrlap utf8 kódolással van elmentve, van egy ilyen benne: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> és egy ilyen is felül: header('Content-Type: text/html; charset=utf-8');
Igen, phpMyAdmin szerint minden, ami lehet utf8.
Próbáltam latin2, meg ilyen-olyan variálást, de egyik se volt jó...Nem tudom mit tehetnék még.
Mit gondoltok? :)
re: Hibás karakterkódolás - hihetetlen...
echo utf8_encode Így próbáltad már?
re: Hibás karakterkódolás - hihetetlen...
Hm..nem, máris kipróbálom. :)
szerk: nem jó. :(
Nem értem egyszerűen, mikor phpMyAdminban látom, hogy tökéletesen van beleírva a táblába az adat...
re: Hibás karakterkódolás - hihetetlen...
Maga a php file jó formátumban van mentve? Azaz utf8 BOM nélkül?
(Bár ez valószínűleg mindegy mert nem statikus a szöveg)
re: Hibás karakterkódolás - hihetetlen...
Igen, természetesen.
2525252
re: Hibás karakterkódolás - hihetetlen...
Hát akkor sajnos nincs más ötletem, keresgélni kell.
PL: itt elmélkednek valami hasonló dologról.
xttp://www.webmasterworld.com/php/3553642.htm
re: Hibás karakterkódolás - hihetetlen...
Igen, 2 napja keresgélek kb, de semmi.
Kód:
mysql_query('SET NAMES utf8')
A srácnak ez hozta meg a megoldást, hogy a mysql csatlakozás után hozzáadta ezt a kódot, ezt már én is megtettem, de...
Egyébként így írom ki az adatokat, bár nem hiszem, hogy ez lenne a probléma...
Kód:
<?php if($customer_info['fullname']){ echo ($customer_info['fullname'].'<br/>');} ?>
<?php if($customer_info['email']){echo($customer_info['email'].'<br/>');} ?>
<?php if($customer_info['address']){echo($customer_info['address'].'<br/>');} ?>
<?php if($customer_info['postcode']){echo($customer_info['postcode'].'<br/>');} ?>
<?php if($customer_info['phone']){echo($customer_info['phone'].'<br/>');} ?>
re: Hibás karakterkódolás - hihetetlen...
header meta?
Kód:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
vagy
Kód:
header('Content-Type: text/html; charset=utf-8');
re: Hibás karakterkódolás - hihetetlen...
Milyen az adatbázisban a tábla, és az oszlop karakterkódolása? Nem lényeges, hogy a phpmyadmin jól jeleníti-e meg. utf8_general_ci-re állítsd őket.
Ezek szükségesek:
- A fájl, ami kiírja a formot, legyen utf8 bom nélküli.
- Az oldal, amin van a form, tartalmazza a <meta>-t.
- A feldolgozó fájl, ami beírja az adabázisba, legyen utf8 bom nélküli.
- Nálam minden oldalon a legelső query, ami lefut, a SET NAMES UTF8, az adatbázisba fel, és letöltésnél is.
- Az adatbázisban a tábla, és az oszlop kódolása legyen utf8_general_ci.
- Ami kiírja az adatokat, annak a fájlnak a kódolása legyen utf8 bom nélküli.
- Annak az oldalnak, ami megjeleníti az adatokat, legyen a karakterkódolása utf8 a <meta>-ban.
Nézd át újra, ez mind megvan-e. Nálam ennyi van, és jól jelennek meg.
re: Hibás karakterkódolás - hihetetlen...
Az adatbázisban milyen kódolással vannak tárolva pl. a nevek?
Tippek:
Kód:
mysql_query('SET NAMES utf8')
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
mysql_query("SET character_set_results = 'utf8'");
mysql_query("SET character_set_server = 'utf8'");
mysql_query("SET character_set_client = 'utf8'");
Engem a SET NAMES és COLLATION_CONNECT-es kombó már sokszor kisegített, bár már régen használtam őket.
De próbálkozhatsz megjelenítés előtti konvertálással, itt viszont tudni kell az adatbázis miben tárolta.
Kód:
echo iconv("ISO-8859-2", "UTF-8", $customer_info['fullname']);