Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
siinus
HV Guru

liitunud: 20.01.2007
|
15.07.2009 15:43:07
e107 char encodingu probleem mysql'ist lugemisel [korras] |
|
|
http://m8.offlain.com/
seal tekib probleem mysql'ist info väljalugemisega.
Probleem põhiliselt see, et süsteemi e107 tabelid on latin encodingus, aga oma vajalikud tabelid on utf-8
kuidas saaks kõige valutumalt need täpitähed välja pritsida, et süsteem püsti jääks.
proovisin mingit convert käsku php'ga, aga siis läks täht kaduma
Olemasolev db on liiga mahukas, et hakata kõike ümber muutma.
_________________ suck less | ANNA MU SAI!
Ma arvasin, et see oli Priit, aga tegelikult oli Tõnu,
viimati muutis siinus 16.07.2009 18:20:41, muudetud 1 kord |
|
Kommentaarid: 66 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
15.07.2009 16:03:02
|
|
|
Kas proovisid funci utf8_encode ?
http://ee.php.net/utf8_encode
Definitsiooni järgi see konverdib iso-8859-1 (ehk latin1) utf8'sse.
Kui multibyte funcid on php's peale keeratud siis soovitatav on läbi mingi taolise funci lasta (samast php lehelt võetud):
function FixEncoding($x){
if(mb_detect_encoding($x)=='UTF-8'){
return $x;
}else{
return utf8_encode($x);
}
}
|
iconv extenstioni olemasolul saad ka teha $string = iconv('latin1', 'UTF-8', $string);
Ise soovitaks ikkagi baasi ära konvertida, kuna iga stringi kontrollimisega ja konvertimisega tuleb päris pirakas overhead otsa lehele...
Baasi konvertimine on suur töö aga kui ise miski normi skripti valmis teed mis võtab latin1 teksti ja utf8'sse konverdib kõikides tabelites kõikidel ridadel (select, convert, update), siis on see ainult ühekordne töö versus see et igal kuvamisel alati uuesti konvert funci jooksutada.
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
siinus
HV Guru

liitunud: 20.01.2007
|
15.07.2009 16:11:27
|
|
|
aga kas on võimalik convertida e107 enda baas, niiet ta oleks sarnane teistele tabelitele?
proovisin korra, aga e107 ei loe ikka koralikult välja (ma ei leia koodijuppi, kus võib äkki mingi convertimine toimuda)
edit:
mb_detect_encodinguga ka proovisin kuidagi, aga (katusega z) läheb tõlkes kaduma.
_________________ suck less | ANNA MU SAI!
Ma arvasin, et see oli Priit, aga tegelikult oli Tõnu, |
|
Kommentaarid: 66 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
15.07.2009 16:18:42
|
|
|
kindel et seal on latin1 (iso-8859-1) ?
Äkki on seal charsetiks hoopis iso-8859-4 pandud ?
Proovi iconv funciga teha $string = iconv('ISO-8859-4', 'UTF-8', $string);
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
siinus
HV Guru

liitunud: 20.01.2007
|
15.07.2009 17:19:00
|
|
|
inzinz kirjutas: |
kindel et seal on latin1 (iso-8859-1) ?
Äkki on seal charsetiks hoopis iso-8859-4 pandud ? |
latin1_swedish_ci
ja läheb ikka tõlkes kaduma
_________________ suck less | ANNA MU SAI!
Ma arvasin, et see oli Priit, aga tegelikult oli Tõnu, |
|
Kommentaarid: 66 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
15.07.2009 17:46:25
|
|
|
Mysql tabeli charset on üks asi, hoopis teine on see, mis charsetiga string sinna tegelt sisse pandud on.
Äkki saad teha näiteks dumpi mingist test tabelist kus see katusega z sees on, saan huvi pärast oma masinas proovida mis toimub.
Kui sul ennem oli lehel pandud headerisse et charset oli iso-8859-4 ja meta tagis ka, siis andmebaasi tõenäoliselt läksid php'st stringid otse sisse tolles kodeeringus, mitte latin_swedish_ci kodeeringuga/collationiga
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
siinus
HV Guru

liitunud: 20.01.2007
|
16.07.2009 18:21:03
|
|
|
andmebaasis on täht inimsilmale loetav st. on õiges kodeeringus(utf8).
e107 tabelid on latin1, kuigi sisu on teises encodingus.
edit: saatsin ps
edit2: sain korda
_________________ suck less | ANNA MU SAI!
Ma arvasin, et see oli Priit, aga tegelikult oli Tõnu, |
|
Kommentaarid: 66 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
59 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|