MYSQL 4.1 magyar ékezet gondok utf8-as kódolású táblánál
Sziasztok,
Egy többnyelvű oldalt készítek, és a régi adatbázis szerver (mysql 4.0) alatt tökéletesen működött az utf8-as kódolás/megjelenítés, még ha nem is volt ilyen karakterkészlet
Most hogy a 4.1 mysql szerverre váltottunk, és van utf8-as kódolás
Az Á (nagy á) helyett folyton a ÿ karakter jelenik meg, illetve a phpmyadminban ha módosítani akarom, akkor ? (kérdőjel) jelenik meg a betű helyett
Mit javasoltok?/Mit kellene beállítanom, hogy jól működjenek a dolgok?
(A html utf8-as kódolását szeretném megtartani ha lehet)
■ Egy többnyelvű oldalt készítek, és a régi adatbázis szerver (mysql 4.0) alatt tökéletesen működött az utf8-as kódolás/megjelenítés, még ha nem is volt ilyen karakterkészlet
Most hogy a 4.1 mysql szerverre váltottunk, és van utf8-as kódolás
Az Á (nagy á) helyett folyton a ÿ karakter jelenik meg, illetve a phpmyadminban ha módosítani akarom, akkor ? (kérdőjel) jelenik meg a betű helyett
Mit javasoltok?/Mit kellene beállítanom, hogy jól működjenek a dolgok?
(A html utf8-as kódolását szeretném megtartani ha lehet)
Ezek a mysql szerver character set collation beállításai
character_set_connection utf8
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
És a mezőnek, amit le szeretnék kérdezni a collation-ja:
utf8_general_ci
Nem
Alapvetően az adatbázishoz csatlakozás után egy "
SET NAMES UTF-8
" kiadása meg fogja oldani a problémát, de a régi adatok migrálása valószínűleg szükséges lesz. Ezt olvassad el: http://weblabor.hu/cikkek/mysql50karakterkodolasokEz komoly, akkor svéd abc
SQL 4.1.20 kódolás probléma
Nekem is van egy hasonló kódolási problémám, gondoltam nem nyitok új témát, ide belefér.
Létrehozok egy táblát pár mezővel, az sql parancs végén
DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
jelzővel, így elvileg minden mező utf8, mert külön-külön nem változtatom (szerk.: és valóban az is, ellenőriztem)
Ha feltöltöm a varchar és a text tipusú mezőket az "árvíztűrő tükörfúrógép" szöveggel, a phpmyadminban nézve nincs is torzulás, minden rendben van. Php-vel a böngészőbe lekérdezve a tábla tartalmát, minden mezőben "árvízt?r? tükörfúrógép" szöveg látható.
Az oldal fejlécében elhelyeztem a következőt:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Hol lehet a hiba, illetve mit kellene beállítanom, hogy helyesen működjön? Ha további információra van szüksége a probléma felderítéséhez, kérlek jelezzétek, hogy mi lenne az!
Köszönöm!
write only? :)
A fenti idézet András hozzászólásából van, ami pont a tiéd felett olvasható :)
re: write only?
Elég egyszer, az SQL konzoljába, vagy építsem be a dinamikus weboldalamba, hogy minden query előtt ezt küldje el a szervernek?
szerk.:Az előbbit kipróbáltam, az eredmény sajnos ugyanaz. Létrehoztam egy új táblát, azzal sem jó.
kapcsolódás után
pl. php-ben:
SET NAMES
Annyit csináltam, hogy a kódba a kapcsolódás utánra (ahogy írtad) beillesztettem a kódod 3. sorát.
oldal kódolása
Valahol meg lehet nézni az oldalt?
kódolás
Fentebb már írtam, a headerben benne van a következő:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Az oldal eléréséről küldök privátot!
ez kevés
A scripted attól lesz utf-8, hogy ilyen kódolással mented el.
script utf8 kódolás és header
Az általad fentebb hivatkozott cikkben a "Karakter kódolás jelölése" fejezetben írtakat kellene alkalmaznom a SELECT-nél? Gyanítom, hogy nem, de nem igazán látom, hogy mit kellene csinálni. Tudnál valami útmutatót linkelni, vagy pár szóban leírni?
ez kevés
A scripted attól lesz utf-8, hogy ilyen kódolással mented el.
megnéztem
oldal kódolás küldése
A fájlok konvertálása alatt arra gondolsz, hogy a .php fájlomat mentsem el UTF-8 kódolással? Ez megtörtént, de a helyzet változatlan.
Ha nem erre gondoltál, akkor hol és mit kellene megváltoztatnom?
Sajnos az sem világos, mit kellene tennem, hogy "rendesen" ki legyen küldve a charset header. Mit kellene még tennem azon kívül, hogy az oldal fejlécében elhelyeztem az idézett sort?
olvass is azért
header küldés
Ezt megtettem, a .php fájlomat a következőképpen kezdem:
Elvileg tehát már jó a kód, de még mindig azt tapasztalom, hogy a böngésző az alapértelmezett kódolással nyitja meg az oldalt, nem utf-8-cal.
Keretek
saját domain
.htacces
Vagy megnézni hogy ott nem-e szerepel valami más utasitás a kodolásra...
.htaccess
nálam már jó...
böngészőspecifikus??
Az IE7-em magyar, a másik három angol nyelvű.
phpmyadmin hiba?
Csinálok egy utf-8-as űrlapot, és azzal viszem fel az adatokat, nem a phpmyadmin felületén...
w3c validator
The validator has found the following problem(s) prior to validation, which should be addressed in priority:
1. Warning Character Encoding mismatch!
The character encoding specified in the HTTP header (iso-8859-2) is different from the value in the XML declaration (utf-8). I will use the value from the HTTP header (iso-8859-2).
Ez lehet a probléma... Mindenesetre nem értem, hogy lehet iso-8859-2 a headerben, amikor ezzel kezdődik a php fájlom a legelején:
apache
Firefox live http headers
ďťż
Sőt... Most nézem, ha csak egyetlen szóközt hagyok a .php fájlomban, egyébként teljesen üres, akkor is ďťż jelenik meg a böngészőben.
Ha nincs egy karakter sem a file-ban, akkor nem jelenik meg semmi...
Számomra ez egy kisebb X-akta...
nem X-akta, BOM
a kódszerkesztődben kapcsold ki a BOM-ot a PHP fájlokra és erre az érintettre meg pláne.
Èrdekes...
2007.07.31 20:16:53 [] {(*00) Unknown character set: 'utf-8''} [Vk>> unknow]
Az alter parancsokra szintén hibát jelzett?
Vagy ez verziofüggő?
sqlben: utf8
amúgy eltévedt a válaszod.
notepad++ és a BOM
Azt hiszem keresek valami más progit...
SIKERÜLT!
Öröm és bódottá' van, működik, ahogy kell... Köszönöm mindenkinek a segítséget!
Mellesleg...
notepad++ nyelv
Elnéztem
Igen,ezt tul automatikusan irtam...
Bár az alter utasitás továbbra is hibát jelez...
köszönet
Sok helyen félrecsúszhat a