Költöztetés utáni karakterkódolási probléma

Lejla képe

Sziasztok!

Free tárhelyen voltam és fizetősre költöztem.
A free tárhelyről való költözés után a hosszú ő és hosszú ű firefoxban ? karakterként jelenik meg a weboldalamon.
kérdésem:
mindkét tárhelyen utf8_general_ci volt/van beállítva, ugyanakkor a cache táblák ürítésekor (a fórumon keresgélve ezt ajánljátok első lépésként ilyesmi problémára) azt vettem észre, hogy az összes adatbázis tábla rekordjaiban latin1_swedis_ci szerepel!
képernyőfotó
Ez gondolom a free tárhelyről származó valamilyen frankó megoldás lehetett a rendszerben, de hogyan lehet megszabadulni tőle? Bármelyik táblába nézek be, ahol van az "Egybevetés" oszlopban karakterkódolás ott kizárólag ez a svéd szerepel...
képernyőfotó a táblákban lévő svéd karakterkódolásról

A költöztetéssel kapcsolatban sajnos nem tudok nyilatkozni, mivel a fizetős szolgáltatómnál voltak olyan kedvesek, és a kérésemre ők költöztették a weboldalt...mivel én kezdő lévén nem mertem bevállalni :*-).
(Megadtam nekik a free tárhelyhez a hozzáférést és a szerverek közt áttolták a weboldalt...ezt mondták legalábbis.)
Szóval fogalmam sincs mit használtak a költözéshez pontosan, és hogyan csinálták - én csak annyit látok még esetlegesen kicsit problémásnak, hogy anno a free tárhelyen a mysql 5-ös verzióját, míg a fizetősön egy korábbit futtatnak (4-esből). Persze ennek lehet hogy semmi köze a karakterkódolási problémához, de talán más problémákat okozhat, ezt ti jobban tudjátok gondolom. :-(

Vacakoljak a weboldallal, vagy rakjam újra az egészet az új tárhelyen?
Kár lenne az eddigi munkáért, de pont azért bíztam az új tárhely szolgáltatómra a költözést, hogy ne cs*sszem el... A szolgáltatóm a karakterkódolási kérdésemre egyelőre annyit válaszolt, hogy "A karakter kódolásnál elképzelhető, hogy problémát okoz a latin1, mondjuk pl. nálunk a saját céges adatbázis is ilyen kódolású, még is megjelennek az ékezetek rendesen." Hát nem tudom, hogy tudják-e milyen problémára gondoltam pontosan, mert ugyanezt nekik is felvázoltam levélben, amikor észrevettem hogy vmi nem stimmel.
Én azt gondolom, hogy itt a fórumokon is jót hallván róluk, meg a segítőkészségüket nézve is, nem kéne szolgáltatót váltanom, mielőtt ezt az üdvös "joker" megoldást ajánlaná valaki a figyelmembe :-) Érdekel a probléma megoldása, és biztosan másokat is érint ilyesmi, azért bátorkodom nem a szolgáltatót nyúzni minden problémámmal, hanem feltenni a kérdésemet inkább itt.

Előre is köszönöm a kezdőhöz mért türelemmel adott válaszaitokat (ha kell, mondjátok úgy el amit ilyenkor tenni kell, mintha norvég cserediákhoz beszélnétek :-) )

üdv:
Kollár Lejla

Drupal verzió: 
Lejla képe

Most hogy ilyen szépen megírtam itt a kérdéseimet, és közben kotorásztam a phpmyadmin segítségével a mysql adatbázisban, felfedeztem, hogy a táblákat Struktúra nézetben megnyitva, az egyes rekordoknál van olyan, hogy változtatás gomb.
Na, úgy látom, ott lehet az Egybevetést megváltoztatni :-)
Igaz, csak egyesével, ami szép kis molyolás, de ha ez helyrehozza az ékezet-problémát, akkor halleluja!
Ha nem, akkor vagy a mindent vissza elölről kezdve jön, vagy ledarálhatom a weboldalt :-)))
Ha addig is eszetekbe jut valami, azért azt szívesen fogadom... de reményeim szerint nem csinálok nagy marhaságot ezzel az egyenkénti egybevetéssel, és ezt az infót talán más kezdő is felhasználhatja majd.
Ha nem sikerült, jelentkezem.
Ha sikerült akkor is, a megerősítés végett :-))

üdv:
Lejla

0
0
pp képe

A tábláknál lévő beállítás csak azért kell, hogy a mysql tudja milyen a benne lévő szöveg kódolása. Ez olyankor kell, ha sorba rendez, vagy keres. Tehát sima lekérdezéseknél nem. Ergo hiába állítod nem fogsz javulást elérni.

A probléma simán lehet abból, hogy a két mysql verziója nem egyezik meg. Továbbá problémás lehet az exportnál milyen karakter kódolást használtak vagyis a kapott fájl milyen kódolású. Az se mindegy, hogy a kapott fájlban lévő adatok, szövegek azok milyen kódolásúak, de ez csak Drupal főverzió váltásoknál okozhat problémát. ;)) Néha segít egy SET NAME UTF8 az sql elején, de látni kéne az egész folyamatot. Tehát most már nem lehet mit tenni, újra le kell játszani az export-import mókát. Tehát vagy megcsinálja neked újra a szolgáltató jól, vagy megcsinálod magad, vagy kezded előröl.

pp

0
0
Petik képe

Szia Leilus!

Hasonló problémám nekem is van, igaz, nem drupál rendszernél.
Az e107 portálrendszernél találkoztam ilyen témával először. Ott meg lehetett oldani a karakterkódolást egy segédprogival, amely leginkább a szöveges fájlok átkódolását végezte. Ezerféleképpen lehet beállítani, és mégis egyszerű a kezelése. Pl. egy ISO-ban írt modult át lehet konvertálni UTF-8 -ba és viszont.
Azonban az adatbázis átkódolására még nem használtam.
Érdemes lenne az ottani fórumon is érdeklődni.

Peti
http://petike07.extra.hu

-
"Gondolkottál mamár?"
/falfirka/

0
0

Üdv. Peti

Lejla képe

Üdv.

Az e107-et megnéztem, és otthagytam - de biztosan van nekik is jó fórumos gárdájuk, csak nekem maga az e107 nem szimpatikus sajnos.

Így is eléggé sok időt igényel amíg végigjárom itt a drupal fórumon a sok "hasonló-de-nem-ugyanaz" fórumtémát és az ott adott tanácsokat, és többnyire még akkor is okulni lehet belőlük ha nem pont az a probléma mint ami nálam merült fel, de hogy egy másik CMS rendszer fórumán kutassak, ahhoz nem csak hogy ismernem kéne az adott CMS-t belülről is jobban, hanem ráadásul nem tartom valószínűnek, hogy egy másik rendszerben működő megoldás átültethető lenne. Legalábbis nekem, amatőr és főként kezdő felhasználónak semmiképp. De kösz a tanácsot, a jó szándék megvolt benne :-)

0
0
Lejla képe

Köszönöm a válaszod - ma hajnali ötbe hajlóan nyomkodtam végig az összes tábla egybevetését, hátha jó lesz, de ahogy írtad is, nem lett. :)

Hm, ha a mysql verziók különbözősége adja a problémát, akkor lehet hogy az újabb export-import nem fog segíteni, és újra kell rakni az oldalt?
Mellesleg, közben a szolgáltatóm egy újabb levélben elárulta, hogy a svéd kódolást használják a szervereiken - de még nem volt náluk ilyen probléma. No én ehhez nem értek, csak azt tudom, hogy kikérdőjeleződtek azok az ékezetes betűk egytől-egyig, és ez így nem jó.

Újra fogom rakni az oldalt, azt hiszem...

üdv:
Lejla

0
0
Illyés Edit képe

SQL fülön futtasd le az "alter database adatbázisneve charset=utf8" parancsot.

Ha ettől nem javul meg, akkor próbáld az exportot újra behúzni PHPMyAdmin import fülén keresztül, megadva, hogy az importálandó dump fájl utf8 kódolású.

Ha ez sem segít, akkor szólj a szolgáltatónak, hogy parancssoron keresztül húzzák be a dumpot a karakterkódolás megadásával:

mysql --default-character-set='utf8' -u adatbázisfelhasználó adatbázisneve -p < /dump/útvonala

Ha ez sem jó, akkor próbáljátok meg az itt leírt eljárást (export latin1, import utf8). A linkelt cikk a legrészletesebb leírás karakterkódolási problémákról, én ott még mindig megtaláltam a megoldást.

0
0
Lejla képe

Az ilyen karakterkódolási egyeztetés-problémánál mennyire "természetes" az, hogy ha belépek a weboldalon, és szekesztésre megnyitva kijavítom az ő-ű kérdőjeleket, mentés után már megvannak az ékezetek? Mondjuk, sajnos nem csak a bevitt tartalomban jelentkezik, hanem a drupal felületén is, tehát a kézzel átírom a kérdőjeleket és elmentem az nem az igazi megoldás úgysem :-/

Edit, köszönöm a tanácsokat, ezek közül az SQL fülön lefuttatott "alter database...." parancs nem segített az ékezeteken, a többit meg nem próbáltam eddig még, mivel az export-import folyamatot a szolgáltatóm csinálta meg szívességből, és a levelezésünkben azt jelzi, hogy nem kellene hogy probléma jelentkezzen, mert mások is használják drupallal, költöztetés után teljesen jó karakter-megjelenítéssel az oldalukat.
Szerintem ők is így parancssoron keresztül húzták át a weboldalt, mert azt írta, hogy szívesen segít ha én erre kérem, mert a szerverek közt hipp-hopp áthúzza az oldalt, gyorsabb a költöztetés mint amúgy. Ebből én legalábbis arra gondolok, amit te írtál.

0
0
Illyés Edit képe

Szerintem ők is így parancssoron keresztül húzták át a weboldalt

De nem adták meg a default charset-et.

Ezen az oldalon egyébként pontosan azt az esetet írják le, megoldással együtt, ami nálad előállt:

"Question marks": Your contents is more or less fine, but some special characters (non-english, advanced punctuation and the like) are replaced by question-marks

0
0
pp képe

Az export vagy import során vesztek el a karakterek, később nyilván már jó lesz. ;)

A Drupal hibás szövegeit a fordítások újbóli importjával könnyedén javíthatod.

pp

0
0
Petik képe

Szia Lejla!

Innen, http://petike07.extra.hu/sites/orodruin.zip letöltheted az "orodruin" nevű konvertáló progit. Felülete magyar és önmagáért beszél, de röviden ismertetem itt:

Egy bizonyos könyvtárba lévő állományokat (megfelelő kiterjesztésűeket) átkonvertál egyik kódlapból a másikba. A program kb. 72 kódlapot képes kezelni, szóval a lehetőségek gyakorlatilag végtelenek.

A program funkciói nagyvonalakban:

- kiterjesztések megadása /több is lehet egyszerre/
- exe, dll, *.* '' kiterjesztések nem megengedettek
- útvonal megadása
- jelenleg 2 nyelvet támogat /magyar angol/
- forrás és cél kódlap megadása /kötelezően/
- lehetőség van az eredeti fileok megtartására, ebben az esetben egy .conv kiterjesztést fűz az átkonvertált fileok végére, és meghagyja őket ugyanabban a könyvtárban.
- míg nincs megadva kiterjesztés és útvonal, addig nem indítható a konvertálás.
- megmutatja a talált és konvertált állományokat és ezekről név, útvonal, dátum és méret infót is ad.
- részletes statisztikát készít a konvertált fileokról, db szám, könyvtár szám, és a konvertáláshoz szükséges idő.

Próbálgasd a localhoston, majd mentés után élesben is használhatod, ha jónak találod.

Peti

0
0

Üdv. Peti

pp képe

Az van, hogy nincs neki semmilyen fájlja. Nem ő csinálta az exportot sem az importot, most már hiába is konvertálna bármit is.

Én ha már homár az iconv-t ajánlom, de arra itt szerintem nincs szükség. Megfelelő export és import szükséges.

pp

0
0
Petik képe

Pista!

Ez van! Ezt kell szeretni, és ha már letöltötte, de dobja a kukába.
Fog találni hozzá fájlt, ha most még nincs is nekije.

Csináld már meg neki lécci!
Te jobban értessz ehhez, gyakorlatban is :)
Az iconvot elfelejtetted linkelni!!

Peti

0
0

Üdv. Peti

Nagy Gusztáv képe

hogy te ki fogod fizetni PP óradíját?

Bocs, de szerintem ne mást akarj már rávenni a munkára. Itt felajánlani szokás a segítséget, és nem rátenni valaki másra.

0
0

Nagy Gusztáv

Petik képe

hagyjuk, mert ezzel szétoffolod a témát Kedves Gusztáv.

Üdv.
Peti

-
Aki tudja, csinálja, aki nem, az tanítja.

0
0

Üdv. Peti

aboros képe

http://hu.php.net/iconv
tessék.
egyébként ez egy php kiterjesztés és három másodperc alatt lehet megtalálni a php iconv szavakra keresve, de mire beírod, hogy php ico.. már ott is a suggestion.

ja meg jó lenne az is, ha nem offolnál szét most már több témát, jót szórakoztunk, de most már dolgoznánk, ha lehet. előre is kösz.

0
0

-
clear: both;

Petik képe

További jó munkát!

0
0

Üdv. Peti

pp képe

Az iconv egy sima parancssoros alkalmazás nálam, előszeretettel használom. Ezért se linkeltem, mert csak be kell írnom, hogy iconv és csókolom. ;)

pp

0
0
eMeLA képe

Emlékeim szerint pont ilyen esetre írtam (nem vagyok programozó, így lehet nem teljesen "szakszerű" a kód), illetve arra is jó, hogy akármekkora adatbázist fel lehet vele tölteni.

Egy próbát megér.

Felmásolod FTP-n az adatbázisod, majd a lenti kódot (az adatok kitöltése után) berakod egy php fájlba. Ezt a fájt mellémásolod az adatbázisnak és böngészőből futtatod.

<?php
 
set_time_limit(0);
$fa=fopen('fájlnév.sql','r');
 
 
$mySQLserver    = 'localhost';
$mySQLuser      = 'username';
$mySQLpassword  = 'password';
$mySQLdefaultdb = 'databasename';
 
$mySQLConnection = mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword) or die( 'Nem lehet kapcsolodni' );
mysql_select_db($mySQLdefaultdb) or die( 'Nem tudok valasztani' );
mysql_query("SET NAMES UTF8");
mysql_query("SET CHARACTER_SET utf8");
print "Start !<br>";
$query="";
$s = 0;
while (!feof($fa)) {
  $sor=trim(fgets($fa));
  if ($sor) {if ($sor[0]!="-" and strlen($sor)>6) $query.=$sor;}
  if (substr($query,-1,1)==";") {
    print $s++."<br>";
    $rezz=mysql_query($query) or print(mysql_error()."<br><h1>".$sor."</h1>");
    $query="";
  }
}
fclose($fa);
print "End !<br>";
?>
0
0

...mit tudok: http://web.termuves.hu