MySQL UTF-8, nem megfelelő keresés
Hali
hasznalt mar valaki utf8-at mysqlhez.
nekem a tarolas es a visszaolvasas ok, csak a keresessel van gondom.
nem talal meg szavakat.
ficko
■ hasznalt mar valaki utf8-at mysqlhez.
nekem a tarolas es a visszaolvasas ok, csak a keresessel van gondom.
nem talal meg szavakat.
ficko
Sziasztok! Kérdésem az l
Kérdésem az lenne, hogy - elsősorban a MySQL szempontjából - érdemes áttérni UTF-8-ra? A weblabor is azt használja, ha minden igaz - milyenek a tapasztalatok? Ha jól tudom, az UTF-8-as karakterek egy bittel több helyet foglalnak, megéri ez? Mik az előnyök-hátrányok?
Jelenleg a latin-2-es kódtáblát használom, de ha érdemes, áttérnék az UTF-8-ra. Miként érdemes ennek nekifogni, mivel jár a konvertálás? Hogyan oldható meg?
Megtisztelnétek, ha részletes válaszokat adnátok, de természetesen egy-egy link is elég lenne.
Előre is kösz!
Áttérés
előnyök
A másik meg az, hogy pl. a drupal is utf-8 as és ha a kódjaidat be akarod tenni és azok nem utf -8 -asok, akkor bizony konvertálhatsz két kézzel... (iconv :)
Harmadik érv: az utf-8 a jövő, ezt a sokféle karakterkódolás közötti átjárás szükségszerűen ki fogja csikarni, akárki akármit csinál...
ui: csonti volnék, csak már megint nem találom az accountom.. :)
Köszönöm!
A helyzet egyébként az, hogy egy már meglévő lapot kéne átraknom UTF-8-ba, mivel várhatóan több nyelven is (pl. svéd, norvég, csak hogy a téma szempontjából "izgalmasabbakat" említsem) hozzá fognak szólni a látogatók...
Bejegyzéseitek olvasva valószínűnek tartom, hogy váltani fogok, viszont evvel kapcsolatban felmerül egy kérdés.
A neten több helyen is azt olvastam, hogy pl. a latin-2-es adatokat csak úgy tudom konvertálni UTF-8-assá, hogy dumpolom az egész adatbázist, átalakítom vmi szövegszerkesztővel, majd visszanyomom újfent az egészet...ugyanakkor a MySQL manualban szerepel a CONVERT(), ami - úgy tűnik - teljesen megfelelő lenne.
Megnéztem az iconv-t is, de picit körülményesnek tűnik; jó lenne, ha lenne egyszerűbb megoldás.
Az "éles" szerveren 3.23-as MySQL van, és sajnos nem tudom, mikor fognak váltani 4-esre. Jelenthet ez problémát?
Drupalosoknak itt van egy cikk spanyolul :D (Bábelt neki)
Találtam egy korrekt leírást is a konvertálásról, ezzel csak az a gondom, hogy nem férek hozzá a shell-hez...vagyis az adatbázissal az egyetlen kapcsolatom egy phpmyadmin.
Összefoglalva: mysql 3.23, adatbázishoz egyedül phpmyadminon át férek hozzá a "szokásos" user privilégiumokkal.
Nem foglalkozom "hivatásszerűen" ilyesmivel, úgyhogy hálás lennék, ha útba igazítanátok: miből áll a fenti körülmények közt a konvertálás?
(Az elejét tudom: mentés!!! ,o) )
CONVERT()
végső esetben...
Ismét köszönöm!
utf-8
- A Unicode karakterkészlet kétbájtos karakterkészlet. De a UTF-8 a Unicode egyik kódolási formája, amiben egy-egy karakter a kódtáblának megfelelő helye szerint más-más helyet foglal el. A UTF-8 kódolás 127-ig csak egy bájtot használ, magyar karaktereknél az ékezetes karakterekhez használ két bájtot.
1 0xxxxxxx [0-127]
2 110xxxxx 10xxxxxx [192-223][128-191]
3 1110xxxx 10xxxxxx 10xxxxxx [224-239][128-191]
4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx [240-247][128-191]
"Az "éles" szerveren 3.23-as MySQL van, és sajnos nem tudom, mikor fognak váltani 4-esre. Jelenthet ez problémát?"
- Okozhat gondot. Azoknál a char és varchar mezőknél ahol utf-8 kódolású szöveget tárolsz BINARY típust is be kell állítanod. Különben a tábla - már nem emlékszem pontosan - javításánál és/vagy optimalizációjánál minden szöveget "ki fog javítani". Úgy emlékszem 4.0.x alatt text típusú mezőnél nem kellett binary típusúra váltani, azt nem bántotta, de nem tudom, hogy mi a helyzet a 3.23.x változattal. Ki kell próbálni. Esetleg visszaírhatnád az eredményt!
Ezen kívül ha utf-8 kódolású mezőt rendezel, akkor nem várt eredményt kaphatsz.
"Összefoglalva: mysql 3.23, adatbázishoz egyedül phpmyadminon át férek hozzá a "szokásos" user privilégiumokkal."
- Ahogy írtad dump, szövegszerkesztő save as, majd adatok visszatöltése. Én a TextPad-ot ajánlom, de pl. windows xp alatt a notepad is meg tudja csinálni a konvertálást.
Az áttérés után a php szkriptjeidet is ajánlatos utf-8 kódolással menteni. Olyan szövegszerkesztőt használni amelyik tudja ezt.
utf-8 kódolású mező rendezése
Pontosan ebbe ütköztem (többek közt...:-)). A MySQL tábláim utf-8-ra vannak állítva (sajnos, hiába van az ATW phpAdmin-jában adattárhoz is beállítási lehetőség, mindig visszadob latin1-re), s lekérdezésekkor a cirill abc a "k"-val kezdődik, stb.
Tud rá valaki megoldást?
Üdv: laji
MySql 4.1
http://weblabor.hu/cikkek/mysql50karakterkodolasok
<Nincs cím>
Itt jött össze: http://weblabor.hu/forumok/temak/11281
Most már csak azt az egyet nem értem, hogy miért nem hajítják nagy ívben szemétbe az összes többi betűtáblát? Hisz lehetne könnyű is az élet - lásd utf8 :-))
Üdv: laji