Karakterkódolás adatbázisban, exportálásnál, importálásnál és weboldalon?
Sziasztok!
Olvasgattam a fórumon és a levlistákon is különböző megoldásokat, ügyeskedéseket a karakterkódolásokat tekintve.
Sehol nem sikerült ezt összeszedetten megtalálnom. És mivel magyar ékezetes karakterekről van szó, a külföldi lapokon nem sok szó esik erről.
Szeretnék valakit megkérni, hogy adjon egy tutkó linket, vagy egy rövidebb összefoglalót, hogy ez az egész hogy működik:
A.) van egy adatbázis, melyben a tárolt adatokhoz tartozik egy karakterkódolás. Ezek melyek lehetnek ha magyar ékezetes karakterekről van szó? (mit és miért érdemes használni? latin2 utf16, utf8_unicode_ci, utf-8.. stb.. mi a különbség? :o )
B.) ha az iménti adatbázisból valamilyen módon exportálunk (phpMyAdmin, phpszkript:fopen()-csv megoldással, vagy xml-be), akkor mit kell figyelembe vennünk? (hogy lehet pl. az adatokat gyorsan, hatásosan konvertálni és szintén "mire" érdemes?)
C.) ha html oldalon való megjelenítéshez tárolt adatokról van szó, akkor a html oldalnak milyen fejléceket kell megadni?
D.) importálásnál is kell figyelni a fenntiekre?
------
Végül egy konkrét kérdés:
én ott akadtam meg, hogy a DB-ben tárolt adatok latin2-ek. Van egy export: írtam rá egy kis php-s szkriptet: ami csv-t generál. Ebben már nem jelennek meg rendesen az ékezetes karakterek. (fopen és fputs-al hozom létre a file-t)
Előfordulhat, hogy ha ezt a file-t importálom egy másik, de ugyanolyan paraméterekkel rendelkező DB-be, akkor a karakterek megfelelően jelennek meg?
Nagyon köszi mindenkinek és bocsi, hogy én vagyok az 500. aki ebben a témában próbál lépegetni. Remélem sikerül általánosságban összeszednie valakinek ezt a témát!
Köszi, üdv:
T
■ Olvasgattam a fórumon és a levlistákon is különböző megoldásokat, ügyeskedéseket a karakterkódolásokat tekintve.
Sehol nem sikerült ezt összeszedetten megtalálnom. És mivel magyar ékezetes karakterekről van szó, a külföldi lapokon nem sok szó esik erről.
Szeretnék valakit megkérni, hogy adjon egy tutkó linket, vagy egy rövidebb összefoglalót, hogy ez az egész hogy működik:
A.) van egy adatbázis, melyben a tárolt adatokhoz tartozik egy karakterkódolás. Ezek melyek lehetnek ha magyar ékezetes karakterekről van szó? (mit és miért érdemes használni? latin2 utf16, utf8_unicode_ci, utf-8.. stb.. mi a különbség? :o )
B.) ha az iménti adatbázisból valamilyen módon exportálunk (phpMyAdmin, phpszkript:fopen()-csv megoldással, vagy xml-be), akkor mit kell figyelembe vennünk? (hogy lehet pl. az adatokat gyorsan, hatásosan konvertálni és szintén "mire" érdemes?)
C.) ha html oldalon való megjelenítéshez tárolt adatokról van szó, akkor a html oldalnak milyen fejléceket kell megadni?
D.) importálásnál is kell figyelni a fenntiekre?
------
Végül egy konkrét kérdés:
én ott akadtam meg, hogy a DB-ben tárolt adatok latin2-ek. Van egy export: írtam rá egy kis php-s szkriptet: ami csv-t generál. Ebben már nem jelennek meg rendesen az ékezetes karakterek. (fopen és fputs-al hozom létre a file-t)
Előfordulhat, hogy ha ezt a file-t importálom egy másik, de ugyanolyan paraméterekkel rendelkező DB-be, akkor a karakterek megfelelően jelennek meg?
Nagyon köszi mindenkinek és bocsi, hogy én vagyok az 500. aki ebben a témában próbál lépegetni. Remélem sikerül általánosságban összeszednie valakinek ezt a témát!
Köszi, üdv:
T
Kódolás
Én mindenképpen UTF-8-at javasolnék, annak a legjobb a támogatottsága több területen is, ezen kívül nem korlátozódik a weboldal szövege magyarra, pl ha fórum vagy hozzászólások vannak mondjuk orosz, héber nyelven, akkor se lesz probléma.
Amíg el nem készül(t) a magyar rendezés, addig utf8_general_ci collocation-el. Azt hiszem MySQL 5-ben már van magyar rendezés.
B)
Exportáláshoz ha a szöveg UTF-8-ban van, akkor az egyik legjobb megoldás a phpMyAdmin lehet, ugyanis az helyesen megtartja az UTF-8 szöveget.
Ha szöveges műveleteket akarsz exportálás közben, akkor nézd át a következőket:
http://weblabor.hu/forumok/temak/10839
http://weblabor.hu/forumok/temak/11281
C)
Lásd:
http://weblabor.hu/forumok/temak/11631
D)
Lásd B)
Utóbbi kérdésedre nem tudok válasszolni, mert nem tudom, hogy pontosan hogy írattad ki a szöveget a fájlba. A másik kérdés, hogy honnan tudod, hogy rosszul vannak benne a karakterek? Mivel nézted meg?
--------
Poetro
figyelj a phpMyadminra
Nálam egy drupalos CMS van, latin1_chi készlettel, ha jól emlékszem. Ha exportálni akarom, arra kell figyelnem, hogy a phpMysqladminnél is ezt a karakterkészletet lőjem be bejelentkezéskor.
Linux alatt a recode talán jó választás a konvertálásra, némi levelezgetés után ma sikerült egy dosos program kimenetét átalakítanom vele úgy, ahogy dos/winnel még nem.
charset-codepage
http://www.motobit.com/util/charset-codepage-conversion.asp
by