Jogos, a *-htm és *.php file-okat is újra el kellett mentenem UTF8 kódolással, mostmár hibátlan a megjelenítés, ha a browser-t UTF8-ra állítom, de magától nem áll oda.
Live HTTP-Header azt mondja, hogy az oldal kódolása iso-8859-2, pedig utf8 kódolással mentem.
Mit kellene tennem, hogy "megsejtse" a browser az utf8-at?
/A server az nem az enyém; webtárhely, ahol nem konfigurálhatok, de szerencsére enélkül is jól jelenik meg az adat mostmár/
Ezt a kimenetet ugye az a php kód állította elő, amelyik a böngészőben rosszul jelenik meg? A character_set_server miért latin1?
A statikus fájlok biztos UTF-8 és nem ISO-8859-2 kódolással vannak?
A HTTP headert is ellenőrizni kellene (a 1627-ben ajánlottam rá eszközt), mert képzeld el a következőt: van egy ISO-8859-2 fájl, amibe a php belerak UTF-8 karaktereket, és ezt elküldi a kliensnek ISO-8859-1 kódolással. Most képzeld magad a browser helyébe, és írd meg, te hogyan jelenítenéd meg ezt a fájlt.
na, akkor az mar jo. Az hogy kalapos es hullamos, kerdes, hogy nem-e a kliens-bol. Ha file-ba kiirod a db-be irando tartalmat, ott nem hullamos/kalapos?
Most a connection létrehozásalor küldök egy SET NAMES 'utf8'-at, ennek hatására annyi javulás történt, hogy már csak a hosszú ű (kalapos ű) és a hosszű ő (hullámos) nem jó.
A 1627-ben belinkeltem a charsetes MySQL dokumentációt, követni kellene az ott ajánlottakat. Találgatás helyett inkább ellenőrizd, hogy hol használsz más kódolást (pl. nézd meg a linkelt oldalon levő SHOW VARIABLES LIKE 'character_set%' kimenetét).
A html headerbe hiába írod bele, hogy ISOakármi vagy UTF8, attól még nem változik meg a fájlod tartalma. Olyan kódolással kell elmenteni a fájlt amilyent a fejlécben állítasz (a php, class, include és minden más fájlt aminek tartalma a böngészőbe kerül), továbbá a HTTP headerben közölt charset is találjon kell a többivel, mert ellenkező esetben a böngésző a sok ellentétes információ miatt véletlenszerűen választ egy kódolást.
Tekintve, hogy csak a MySql-ből származó string-ek rosszak én is arra gondolok, hogy nem a HTML-t kellene piszkálnom. Az adatbázisnál 'DEFAULT CHARACTERSET utf8' van beállítva, mire gondolsz a SET NAME ügyében?
"Köszi, nyilván charset eltérés van, csak tudnám hogy hol." Ezt távolról nem lehet megállapítani. Ellenőrizni kell mindenütt (pl. kliensoldalon Firefox+Live HTTP Headers plugin).
"tehát legyen szabványos:" Nem azért mert szabványos, vagy mert többségben van, hanem mert többnyelvűség esetén egy gonddal kevesebb. A listádon nincs rajta a http header, azt is ellenőrizted?
A html (php, stb) fájlok ugyanolyan kódolással vannak elmentve mint amit használsz? Gyanús, hogy most UTF8-at küldesz és a statikus tartalom még mindig jól látszik. Kódolásváltásnál ha nem mented újra a statikus tartalmat a helyes kódolással akkor rosszul fog látszani.
Gyakran látogasd a MySQL Documentation oldalt, ha elakadsz ( sokat próbáltad az ott leírtakat és mégsem megy ) akkor bátran konkrét kérdéseket tegyél fel a problémával kapcsolatban.
Köszi, nyilván charset eltérés van, csak tudnám hogy hol.
Én azt tapasztaltam, hogy még mindig többségben vannal az iso-8859-2 kódolású oldalak, de én is híve vagyok az utf-8 terjesztésének, tehát legyen szabványos:
MySQL karakterkészlet: UTF-8 Unicode (utf8) MySQL kapcsolat egyeztetés: utf8_unicode_ci HTML meta tag--ban charset=utf-8 Böngésző nézet-encoding: utf-8
Ha phpmyadmin segítségével listázom a tábla tartalmát, akkor helyesen látom az összes ékezetet; ha a HTML oldalon íratom ki, akkor mostmár nemcsak az őű hanem a többi ékezet sem látszik, helyükön csúcsán álló sötét rombuszban kérdőjel látható.
Persze ami nem mysql adatbázisből iródik ki, hanem a HTML kódban van az mind jó így is.
Valahol charset eltérés van. A charset ugyanaz kell legyen a meződefiníciótól kezdve a connection-ön és php-n át a html-ig. MySQL-ben: 9.1.4. Connection Character Sets and Collations (a többit is olvasd el, pl. 9.1.5) HTTP header: Content-Type: text/html; charset=UTF-8 HTML: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Javaslom az UTF8 használatát, általánosabb, mint az ISO 8859-2.
A programocska, amit készítek iso-8859-2 kódolású weboldalakra írogat, ahol szépen megjelennek a magyar ékezetes betűk a HTML szövegben. Ellenben a mysql adatbázisban tárolt, magyar ékezeteket tartalmazó string változóknál ő és ű helyett ? jelenik meg, ellenére annak, hogy adatbevitelnél persze rendesen ő és ű kerül a beviteli mezőbe.
nem, csak mysql -be az az ojjektumok nevenek a hatarolo karakterek. mas adatbazisokban altalaban a " az. A ' az cirka mindenhol a karakter ertekek hataroloja.
Nagyon köszönöm, átneveztem a mezőt 'made' -re és működik, de jól esett volna, ha a phpmyadmin, amivel létrohoztam a táblát, figyelmeztet, hogy foglalt kulcsszó a when. Nem rémlik, hogy 'when'-t adtam volna meg, hiszen nem gyanakodtam.
Az INSERT query-nél így is '$made' kell az dátum és idő adatok közti space miatt, hiszen string típusként szeretném eltenni.
en gyanakodom arra a when-re. Esetleg ha `when` -kent hasznalod a query-dbe is? Csak mert amikor letrehoztad a tablat sem adhattad meg `` karakterek nelkul, mert a when az foglalt szo mysql-be.