Forum » Izdelava spletišč » MySQL in czs
MySQL in czs
MrBrdo ::
Lep pozdrav.
Na FreeBSDju mi teče MySQL 4.1.9. Za pregledovanje baze uporabljam PHPMyAdmin, imam pa sledeč problem: Strani, ki vpisujejo podatke v bazo imajo ISO-8859-2 charset (oz latin2). Nikakor mi ne uspe, da bi lahko te podatke bral prek PHPMyAdmina v berljivi obliki. Pri večini charsetov ki jih poizkusim (vključno z latin2), se mi čžš, vnešeni prek teh strani, prikazujejo v PMA kot ?, ko pa jih prek strani spet preberem, so pravilni (torej res čžš). Če pa naprimer v PMA dam change in vpišem č ali ž ali š prek PMA, se mi v PMA izpsuje pravilno (samo pri določenih charsetih, mislim da pri latin2 in utf8), vendar se na strani izpisujejo kot ? ali pa tisti cudni znakci.
Imam dostop do enega slovenskega strežnika ki ima tudi MySQL bazo, in sem skopiral gor točno isti PHPMyAdmin, ki ga jaz uporabljam, in tam zadeva dela brez problema (torej vedno vidim čžš pravilno, in v PMA in na strani). Edina razlika je, da mi tam PMA sploh nikjer ne prikazuje charsetov (torej ni možno posebej za tabelco\bazo\karkoli naštimat charsetov, niti ne moram pogledat kateri je - vendar imam tu dostop le do določene baze, tako da ne vem če je s tem kaj povezano).
Glede na vse zgoraj napisano se mi dozdeva, da bi moral nekako skonfigurirati ali OS (FreeBSD), ali mysqld, da bi se mi ti znaki pravilno izpisovali (torej pravim da očitno ni problem v PMA). Btw, najprej sem compilal mysqld normalno (torej latin1 in latin1_swedish_ci), poskusil pa sem tudi z WITH_CHARSET=latin2 WITH_COLLATION=latin2_general_ci, vendar tudi tako ne dela. Prav tako sem v PMA nastavil te nastavitve za trenutno sejo. Z UTF8 prav tako ne gre. Zdi se mi tudi čudno, da na onem serverju vidim čžš ne glede na to, kateri charset uporablja stran (oz. poskusil sem le z windows-1250 in ISO-8859-2, vendar oba delujeta). Pa prosim da ne bo kdo rekel da nima veze kateri charset uporablja stran, seveda je važno saj preko forme (POST) pošljem podatke na PHP stran, ki jih nato brez spreminjanja zapiše v bazo (se pravi brez da bi kaj popravljal čžš), torej so podatki enkodirani v tem charsetu. Ena zelo neprijetna stvar je recimo, da neke podatke shranim v bazo prek strani, potem pa bi rad v PMA nekaj popravil, in nato se mi vsi čžš dejansko spremenijo v "?", tako na strani kot v PMA.
Upam da kdo pozna ta problem in da mi lahko pomaga, this is driving me nuts :)
Hvala,
LP
Na FreeBSDju mi teče MySQL 4.1.9. Za pregledovanje baze uporabljam PHPMyAdmin, imam pa sledeč problem: Strani, ki vpisujejo podatke v bazo imajo ISO-8859-2 charset (oz latin2). Nikakor mi ne uspe, da bi lahko te podatke bral prek PHPMyAdmina v berljivi obliki. Pri večini charsetov ki jih poizkusim (vključno z latin2), se mi čžš, vnešeni prek teh strani, prikazujejo v PMA kot ?, ko pa jih prek strani spet preberem, so pravilni (torej res čžš). Če pa naprimer v PMA dam change in vpišem č ali ž ali š prek PMA, se mi v PMA izpsuje pravilno (samo pri določenih charsetih, mislim da pri latin2 in utf8), vendar se na strani izpisujejo kot ? ali pa tisti cudni znakci.
Imam dostop do enega slovenskega strežnika ki ima tudi MySQL bazo, in sem skopiral gor točno isti PHPMyAdmin, ki ga jaz uporabljam, in tam zadeva dela brez problema (torej vedno vidim čžš pravilno, in v PMA in na strani). Edina razlika je, da mi tam PMA sploh nikjer ne prikazuje charsetov (torej ni možno posebej za tabelco\bazo\karkoli naštimat charsetov, niti ne moram pogledat kateri je - vendar imam tu dostop le do določene baze, tako da ne vem če je s tem kaj povezano).
Glede na vse zgoraj napisano se mi dozdeva, da bi moral nekako skonfigurirati ali OS (FreeBSD), ali mysqld, da bi se mi ti znaki pravilno izpisovali (torej pravim da očitno ni problem v PMA). Btw, najprej sem compilal mysqld normalno (torej latin1 in latin1_swedish_ci), poskusil pa sem tudi z WITH_CHARSET=latin2 WITH_COLLATION=latin2_general_ci, vendar tudi tako ne dela. Prav tako sem v PMA nastavil te nastavitve za trenutno sejo. Z UTF8 prav tako ne gre. Zdi se mi tudi čudno, da na onem serverju vidim čžš ne glede na to, kateri charset uporablja stran (oz. poskusil sem le z windows-1250 in ISO-8859-2, vendar oba delujeta). Pa prosim da ne bo kdo rekel da nima veze kateri charset uporablja stran, seveda je važno saj preko forme (POST) pošljem podatke na PHP stran, ki jih nato brez spreminjanja zapiše v bazo (se pravi brez da bi kaj popravljal čžš), torej so podatki enkodirani v tem charsetu. Ena zelo neprijetna stvar je recimo, da neke podatke shranim v bazo prek strani, potem pa bi rad v PMA nekaj popravil, in nato se mi vsi čžš dejansko spremenijo v "?", tako na strani kot v PMA.
Upam da kdo pozna ta problem in da mi lahko pomaga, this is driving me nuts :)
Hvala,
LP
MrBrdo
- spremenilo: MrBrdo ()
nejc_ ::
glej... ni direkten odgovor na tvoje vprasanje, pa vseeno.. jst sem izgubil se in se zivcev zarad sumnikov v taksnih in drugacnih primerih pri mysqlu.. ce imas moznost, pojdi na postgre in utf8, kjer ti iz prve roke povem, da zadeva spila tako kot mora...
MrBrdo ::
Ja ti verjamem, problem je v tem da delam strani za eno firmo in imajo MySQL streznik.. Pa se mi ne da potem pretvarjat, ce se sploh da (tko da nebi šli šumniki pa-pa).
MrBrdo
nejc_ ::
potem pa uporabljaj vsaj utf8 za collation pa tud imas, ce se prav spomnim utf8_slovenian
seveda pretvori vse podatke iz latin2 v utf8 :)
seveda pretvori vse podatke iz latin2 v utf8 :)
St@jler ::
jaz sem nekako prišel do tega da ali imaš na strani lepo šumnike uredu, ali pa v PMA. oboje mi ni nikoli ratal. Tako da imam rajši na strani.
Sicer pa za šumnike na strani uporabljam sledeče pretvorbe:
š = š ali š = š
Š = Š ali Š = Š
ž = ž ali ž = ž
Ž = Ž ali Ž = Ž
č = č
Č = Č
In potem če uporabnik recimo napiše v textfield: "kmalu bo noč", je v bazi napisano "kmalu bo noč"
Sicer pa za šumnike na strani uporabljam sledeče pretvorbe:
š = š ali š = š
Š = Š ali Š = Š
ž = ž ali ž = ž
Ž = Ž ali Ž = Ž
č = č
Č = Č
In potem če uporabnik recimo napiše v textfield: "kmalu bo noč", je v bazi napisano "kmalu bo noč"
snow ::
Hm. Meni lepo delajo šumniki tako na strani kot tudi v phpmyadminu in lahko popravljam tako preko strani (php & post) kot preko phpmyadmina. Hmm.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
ThinMan ::
Mogoče pa je kaj z FreeBSD oz nastavitvami MySQL za FreeBSD.
Sam sem mel težave z sambo na FreeBSD ker sem moral explicitno dodati charset tko da smo potem lahko imena datotek pisali z šumniki.
MySQL imam na Debian servrju in delajo šumniki. Mogoče res probaš z konverzijo vnesenih šumnikov z kodami &#xxx (xxx številka znaka)
lp,
Sam sem mel težave z sambo na FreeBSD ker sem moral explicitno dodati charset tko da smo potem lahko imena datotek pisali z šumniki.
MySQL imam na Debian servrju in delajo šumniki. Mogoče res probaš z konverzijo vnesenih šumnikov z kodami &#xxx (xxx številka znaka)
lp,
----
"We may not be able to control the wind, but we can always adjust our sails"
"We may not be able to control the wind, but we can always adjust our sails"
MrBrdo ::
snow: kateri OS pa uporabljaš? pa kateri charset in collation in kateri charset na strani?
Drugače sem tudi jaz že razmišljal da bi na pageu popravljal šumnike, sam se mi brezveze če je možnost da dela tudi brez tega.. Pomoje je res nekaj v zvezi z nastavitvami ali FreeBSD ali MySQLa (mogoce ma port drugacne nastavitve kot na drugih OS, ceprav pomoje je bolj verjetno da bi moral kej na FreeBSD nastavit).
Drugače sem tudi jaz že razmišljal da bi na pageu popravljal šumnike, sam se mi brezveze če je možnost da dela tudi brez tega.. Pomoje je res nekaj v zvezi z nastavitvami ali FreeBSD ali MySQLa (mogoce ma port drugacne nastavitve kot na drugih OS, ceprav pomoje je bolj verjetno da bi moral kej na FreeBSD nastavit).
MrBrdo
sverde21 ::
Uskladi charseta v bazi in na strani, probaj z novo verzijo MySQL v5.0.16 se mi zdi d je zadna :)
<?php echo `w`; ?>
MrBrdo ::
Ne petka še ni čist stable kokr vem.. Mam 4.1 najnovejšo..
V glavnem nikakor ne gre, zdej sm recompileu mysql client in server in nastavu default utf8, stran ma tut encoding utf8 (html), in ko na strani prek forma nekaj vnesem, se povežem na bazo in še posebej nastavim charset:
mysql_query("SET CHARACTER SET 'utf-8'");
in potem pač query insert recimo, in potem ko to preberem iz baze in izpišem na strani je ok čžš, v phpmyadminu, ki ima pa tudi vse nastavljeno na utf8, pa mi pokaže en vprašaj (za vse tri - čžš). Če naredim nasprotno, torej v bazi nastavim čžš, mi na strani ne pokaže vprašaja ampak Ä�Şť.. Zdej pa res ne vem kva je narobe.. Stran ma 100% encoding utf8, in tudi characters set se bi moral nastavit.. ne vem kaj naj še naredim..
ok zdele sm še neki probu:
namesto mysql_query("SET CHARACTER SET 'utf-8'"); sem dal mysql_query("SET CHARACTER SET 'latin2'");, VSE ostalo pa je nastavljeno na utf8. Zdaj se čžš pokažeta v phpmyadminu in na strani??? WTF?? A mi lahko kdo razloži v čem je zdej fora?
lp
V glavnem nikakor ne gre, zdej sm recompileu mysql client in server in nastavu default utf8, stran ma tut encoding utf8 (html), in ko na strani prek forma nekaj vnesem, se povežem na bazo in še posebej nastavim charset:
mysql_query("SET CHARACTER SET 'utf-8'");
in potem pač query insert recimo, in potem ko to preberem iz baze in izpišem na strani je ok čžš, v phpmyadminu, ki ima pa tudi vse nastavljeno na utf8, pa mi pokaže en vprašaj (za vse tri - čžš). Če naredim nasprotno, torej v bazi nastavim čžš, mi na strani ne pokaže vprašaja ampak Ä�Şť.. Zdej pa res ne vem kva je narobe.. Stran ma 100% encoding utf8, in tudi characters set se bi moral nastavit.. ne vem kaj naj še naredim..
ok zdele sm še neki probu:
namesto mysql_query("SET CHARACTER SET 'utf-8'"); sem dal mysql_query("SET CHARACTER SET 'latin2'");, VSE ostalo pa je nastavljeno na utf8. Zdaj se čžš pokažeta v phpmyadminu in na strani??? WTF?? A mi lahko kdo razloži v čem je zdej fora?
lp
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
krho ::
@AndrejS: ti si šel na M$$QL jaz ga pa sovražim iz dna duše. Kako temu pof*kanemu serverju poveš, da naj datume vrača PO SQL standardu ne pa po Window$ locale settingu ali kakorkoli se mu pač že dvigne.
@MrBrdo: MySQL 5 je stable. Ene 14 dni najmanj.
Tiste kvake so utf-8, nagradno vprašanje pa je kakšen encoding za html ti pošlje apache. Svoj framework poizkuđaj prepričati, da bo sam pošiljal vse headerje tudi za html.
@MrBrdo: MySQL 5 je stable. Ene 14 dni najmanj.
Tiste kvake so utf-8, nagradno vprašanje pa je kakšen encoding za html ti pošlje apache. Svoj framework poizkuđaj prepričati, da bo sam pošiljal vse headerje tudi za html.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
MrBrdo ::
ja sem poizkusil zdaj nastavit content-encoding prek header() na utf-8, ampak nič ne spremeni.. v phpmyadminu vidm samo en ? namest čžš, ki se vid na strani..
pravilno dela samo v primeru da povsod nastavim utf-8, razen ko se povežem na mysql iz moje strani moram dat
mysql_query("SET CHARACTER SET 'latin2'");
in v tem primeru dela ok.. sam je nelogično da bi blo povsod utf-8 pol pa kr neki latin2..
pravilno dela samo v primeru da povsod nastavim utf-8, razen ko se povežem na mysql iz moje strani moram dat
mysql_query("SET CHARACTER SET 'latin2'");
in v tem primeru dela ok.. sam je nelogično da bi blo povsod utf-8 pol pa kr neki latin2..
MrBrdo
krho ::
Mislim, da ima tvoja baza (baza ne server), še vedno nastavljen encoding na latin2.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
MrBrdo ::
misliš polje v tabelci da ima encoding na latin2 nastavljen? ker to nima.. ima collation nastavljen na utf8_general_ci..
MrBrdo
krho ::
Polje v tabeli ali pa sama tabela sem mislil ja.
Ker to bi bila edina možnost, zakaj rabiš nastavljat latin2.
Ker to bi bila edina možnost, zakaj rabiš nastavljat latin2.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
MrBrdo ::
očitno mora bit še kaka druga možnost, ker mam nastavljen na utf8_general_ci collation pri tabelci in poljih v njen..
MrBrdo
krho ::
ravno sedajle sem pizdil nad mySQL-om, ker sem imel bazo definirano kot utf-8, kretenski mysql pa mi je vstajno vračal cp1250. No 5.x serija zahteva negelde na nastavitve baze, nastavitev connection encodinga
izvedi naslednji stavek peardbConn->query('SET NAMES \'utf8\'');
izvedi naslednji stavek peardbConn->query('SET NAMES \'utf8\'');
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
MrBrdo ::
Kaj pa je razlika med
mysql_query("SET CHARACTER SET 'utf8'");
in
mysql_query("SET NAMES 'utf8'");
?
mysql_query("SET CHARACTER SET 'utf8'");
in
mysql_query("SET NAMES 'utf8'");
?
MrBrdo
MrBrdo ::
V bistvu ne.. trenutno imam rešeno tako (pa ne vem zakaj ravno tako deluje), da imam na bazi nastavljeno vse na ut8, potem pa v PHP skriptah ki jih mam naredim mysql_query("SET CHARACTER SET 'latin2'"); v phpmyadminu pa nic ne spreminjam.. in deluje povsod, samo ne vem zakaj ravno tako =/ nekdo mi je priporočal naj nastavim iconv v phpmyadminu samo men se to ne zdi rešitev ker npr. na linuxu deluje vse tudi brez tega..
tako da še vedno če kdo slučajno ve kako bi se to rešilo pravilno naj sporoči
lp
tako da še vedno če kdo slučajno ve kako bi se to rešilo pravilno naj sporoči
lp
MrBrdo
CWIZO ::
Zakaj za boga imas vse na utf8 pol das pa SET NAMES latin2 ?!?
Povsod mej vse isto nastelan. Od fajlov do baze do HTML charset taga.
Pol bo pa delal tko kot je treba.
Povsod mej vse isto nastelan. Od fajlov do baze do HTML charset taga.
Pol bo pa delal tko kot je treba.
hancic.info
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
MrBrdo ::
Cwizo dej prosim drugic si PREBER na kaj odgovarjas, ker sem jasno napisal da mi če vse nastavim na utf-8 NE DELA (ja, ne bos verjel, od fajlov do baze in HTML taga). Lej ce ne znas al pa ce se ti ne da brat rajs ne odgovarjaj, pa prihrani nam vsem cas ker moramo brat tvoje bedastoce. Ce mislis da si pameten ker si izpostavu najbolj logicno kombinacijo k mislim da smo jo VSI najprej probali, pol se motis.
Taki ljudje pa res morjo obstajat, da mene jezijo, al kaj.. Pa ravno v mojem postu se mora en pojavit...
lp
Taki ljudje pa res morjo obstajat, da mene jezijo, al kaj.. Pa ravno v mojem postu se mora en pojavit...
lp
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
CWIZO ::
O ti bogi bogi.
Zgleda nisi povsod nastavil (shema, tabele, stolpci, SET NAMES utf8, file utf8 without BOM, meta charset=utf8)
Ce bi, bi delalo
Zgleda nisi povsod nastavil (shema, tabele, stolpci, SET NAMES utf8, file utf8 without BOM, meta charset=utf8)
Ce bi, bi delalo
hancic.info
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
MrBrdo ::
Verjam mi da sem.. Drugac nebi rekel. In ce nisi mel tega problema na FreeBSDju te prosim da prepustis to nekomu ki ma idejo kako bi to resil.. Na drugih OS tudi jaz nisem imel problemov s tem.
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
CWIZO ::
Pojdi se cez config fajle PHPja ter apacheja, ce je tam kaka cudna nastavitev.
hancic.info
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
I can't uninstall it, there seems to be some kind of "Uninstall Shield"...
MrBrdo ::
Ja bom se enkrat pogledal sam glede na to da mam ta problem ze eno leto mi lahk verjames da sem se na vse te banalnosti ze spomnil. Ce mas kaksno bolj konkretno idejo kaj bi preveru pa super..
lp
lp
MrBrdo
Poldi112 ::
Imaš mogoče kak compile flag za utf8, ki si ga izpustil?
Where all think alike, no one thinks very much.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
Walter Lippmann, leta 1922, o predpogoju za demokracijo.
MrBrdo ::
Jah mislim da ne, dal sem oba, WITH_CHARSET in WITH_COLLATION (al neki takega).. mislim da kak drug ne obstaja, lahko pa da se motim.. Tabelce pa stolpci pa majo tudi vsi na utf-8..
MrBrdo
wind ::
Na debian + mysql 4.1 + phpMyAdmin 2.7.0-pl2-Debian-1 deluje tole:
- v datoteki /etc/init.d/mysql vrstico 80 spremeni v:
/usr/bin/mysqld_safe --default-character-set=latin2 --default-collation=latin2_general_ci > /dev/null 2>&1 &
- v datoteki /etc/mysql/my.cnf pod [mysqld] dodaj init-connect = "SET NAMES latin2" in pod
[mysql]
default-character-set=latin2
Ko kreiraš bazo ali tabelo dodaš DEFAULT CHARSET=latin2.
Dobro je tudi vedeti, da se init-connect izvede samo pri ne-root povezavah. Zaradi tega potem ni potrebno
spreminjati php skript.
- v datoteki /etc/init.d/mysql vrstico 80 spremeni v:
/usr/bin/mysqld_safe --default-character-set=latin2 --default-collation=latin2_general_ci > /dev/null 2>&1 &
- v datoteki /etc/mysql/my.cnf pod [mysqld] dodaj init-connect = "SET NAMES latin2" in pod
[mysql]
default-character-set=latin2
Ko kreiraš bazo ali tabelo dodaš DEFAULT CHARSET=latin2.
Dobro je tudi vedeti, da se init-connect izvede samo pri ne-root povezavah. Zaradi tega potem ni potrebno
spreminjati php skript.
w
MrBrdo ::
wind hvala, to si fajn napisu in mi bo sigurno se kdaj prov prsilo.. sicer to ni uspelo resit mojga problema vendar sem nasel problem ki je bil pri meni..
za vse, ki imate mogoce ta problem, pri meni je bilo naslednje:
v Apache configu (httpd.conf) sem imel vrstico "AddDefaultCharset ISO-8859-2" (lahko mate tut kaj drugega tam namesto ISO-8859-2).. Odkar sem to vrstico zakomentiral mi vse deluje brez problemov (prej mi je očitno kar ignoriral kateri charset je bil nastavljen v html).
lp
za vse, ki imate mogoce ta problem, pri meni je bilo naslednje:
v Apache configu (httpd.conf) sem imel vrstico "AddDefaultCharset ISO-8859-2" (lahko mate tut kaj drugega tam namesto ISO-8859-2).. Odkar sem to vrstico zakomentiral mi vse deluje brez problemov (prej mi je očitno kar ignoriral kateri charset je bil nastavljen v html).
lp
MrBrdo
ElNuncio ::
Kako pa naj v FreeBSDju nastavim default char set na UTF-8?
Na strani od mysql:
You can add the --default-character-set option setting to your mysql statement line, or in your option file. For example, the following option file setting changes the three character set variables set to koi8r each time you invoke mysql:
[mysql]
default-character-set=koi8r
Jaz sem sicer našel pod "/usr/local/etc/rc.d/" skripto "mysql-server.sh', ki najbi se zagnala ob zagonu računalnika (startup), kjer lahko tudi dodaš kakšen dodaten argument, za ob startupu mysqlla.
No spremenil sem ${mysql_args=""} v ${mysql_args="--character-set-server=utf8"}.
Vendar ta stvar ne deluje.
Jaz v mojem httpd.conf nisem našel 'AddDefaultCharset ISO-8859-2' mogoče je odvisno tudi od verzije apacha...jaz imam apache-2.0.55_3. No dodal sem pa v moj httpd.conf ''AddDefaultCharset UTF-8', pa vseeno ne deluje :(
Ali kdo ve, kako da nastavim 'default-collation' in 'default-charset' na mysql serverjuoz. na apachu?
Na strani od mysql:
You can add the --default-character-set option setting to your mysql statement line, or in your option file. For example, the following option file setting changes the three character set variables set to koi8r each time you invoke mysql:
[mysql]
default-character-set=koi8r
Jaz sem sicer našel pod "/usr/local/etc/rc.d/" skripto "mysql-server.sh', ki najbi se zagnala ob zagonu računalnika (startup), kjer lahko tudi dodaš kakšen dodaten argument, za ob startupu mysqlla.
No spremenil sem ${mysql_args=""} v ${mysql_args="--character-set-server=utf8"}.
Vendar ta stvar ne deluje.
Jaz v mojem httpd.conf nisem našel 'AddDefaultCharset ISO-8859-2' mogoče je odvisno tudi od verzije apacha...jaz imam apache-2.0.55_3. No dodal sem pa v moj httpd.conf ''AddDefaultCharset UTF-8', pa vseeno ne deluje :(
Ali kdo ve, kako da nastavim 'default-collation' in 'default-charset' na mysql serverjuoz. na apachu?
Zgodovina sprememb…
- spremenil: ElNuncio ()
jype ::
Ahja :)
V /etc/my.cnf (oz. /usr/local/etc/my.cnf na fbsd i guess) napisete:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
In potem v phpMyAdmin normalno delajo sumniki, ce v bazo pisete UTF-8.
Pretvorbo se najlazje naredi tako, da pred spremembo naredis
mysqldump -u root -p -a > mysql.dump
iconv -f <charset ki ste ga imeli prej, recimo iso-8859-2> -t utf-8 mysql.dump > mysql-utf8.dump
Po restartu baze pa
mysql -u root -p < mysql-utf8.dump
V /etc/my.cnf (oz. /usr/local/etc/my.cnf na fbsd i guess) napisete:
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
In potem v phpMyAdmin normalno delajo sumniki, ce v bazo pisete UTF-8.
Pretvorbo se najlazje naredi tako, da pred spremembo naredis
mysqldump -u root -p -a > mysql.dump
iconv -f <charset ki ste ga imeli prej, recimo iso-8859-2> -t utf-8 mysql.dump > mysql-utf8.dump
Po restartu baze pa
mysql -u root -p < mysql-utf8.dump
NeOman ::
no sam imam podoben problem z mysql bazo (charset: windows-1250). v bazi so sumniki vpisani normalno, vendar ko jih skripta prebere mi v firefoxu postavi samo vprasaje.
no da bi se temu izognil poskusim pretvoriti zadeve po naslednjem postopku:
š,Š,ž in Ž delujejo brez kakrsnihkoli problemov, pri č pa metoda ne deluje. se morda komu sanja zakaj? deluje tako, kot da nikoli ne zazna črke č.
hvala za odgovore.
no da bi se temu izognil poskusim pretvoriti zadeve po naslednjem postopku:
$post_text = str_replace("Š", "Š", $post_text); $post_text = str_replace("š", "š", $post_text); $post_text = str_replace("Ž", "Ž", $post_text); $post_text = str_replace("ž", "ž", $post_text); $post_text = str_replace("Č", "Č", $post_text); $post_text = str_replace("č", "č", $post_text);
š,Š,ž in Ž delujejo brez kakrsnihkoli problemov, pri č pa metoda ne deluje. se morda komu sanja zakaj? deluje tako, kot da nikoli ne zazna črke č.
hvala za odgovore.
ElNuncio ::
Jaz imam prav identično napako kot je navaja MrBrdo (v phpMyAdminu ni šumnikov, na strani pa so), samo da njegova rešitev mi ne pomaga.
Poskušal sem dodati
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
kot predlaga jype v my.cnf. Vendar pri fbsdju tega file sploh ni, vendar ga lahko ustvariš saj se pod /user/local/share/mysql/ skrvajo primeri tega conf. file. V /usr/local/etc/rc.d/"mysql-server.sh' je tudi zapisano kje more da file bit da ja skrpta upošteva.
No dodal sem zgornje vrstice v pod '/var/db/mysql/my.cfn', ta file moreš seveda ustvarit ker po defaultut ga sploh ni, vendar stvar in pomagala. Poskušal sem tudi rešitev od wind-a, vendar prilagojena za fbsd, v '/usr/local/etc/rc.d/mysql-server.sh' sem dodal '--default-character-set=utf8 --default-character-set=utf8 --default-collation=utf8_slovenian_ci', pa tudi ne pomaga.
Drugače imam pod '/usr/local/share/mysql/charsets' le:
cp1250.xml cp850.xml geostd8.xml keybcs2.xml latin2.xml macroman.xml
cp1251.xml cp852.xml greek.xml koi8r.xml latin5.xml swe7.xml
armscii8.xml cp1256.xml cp866.xml hebrew.xml koi8u.xml latin7.xml
ascii.xml cp1257.xml dec8.xml hp8.xml latin1.xml macce.xml
Nimam kakega utf8.xml ali kaj podobnega...mogoče pa je v tem problem, mogoče bi rabu nekako dodat nove character setse ali pa compilat mysql na novo z character sets utf-8???
Kaj ta slovenščina mora met te šumnike, predlagam referendum da se jih ukine!
Poskušal sem dodati
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
kot predlaga jype v my.cnf. Vendar pri fbsdju tega file sploh ni, vendar ga lahko ustvariš saj se pod /user/local/share/mysql/ skrvajo primeri tega conf. file. V /usr/local/etc/rc.d/"mysql-server.sh' je tudi zapisano kje more da file bit da ja skrpta upošteva.
No dodal sem zgornje vrstice v pod '/var/db/mysql/my.cfn', ta file moreš seveda ustvarit ker po defaultut ga sploh ni, vendar stvar in pomagala. Poskušal sem tudi rešitev od wind-a, vendar prilagojena za fbsd, v '/usr/local/etc/rc.d/mysql-server.sh' sem dodal '--default-character-set=utf8 --default-character-set=utf8 --default-collation=utf8_slovenian_ci', pa tudi ne pomaga.
Drugače imam pod '/usr/local/share/mysql/charsets' le:
cp1250.xml cp850.xml geostd8.xml keybcs2.xml latin2.xml macroman.xml
cp1251.xml cp852.xml greek.xml koi8r.xml latin5.xml swe7.xml
armscii8.xml cp1256.xml cp866.xml hebrew.xml koi8u.xml latin7.xml
ascii.xml cp1257.xml dec8.xml hp8.xml latin1.xml macce.xml
Nimam kakega utf8.xml ali kaj podobnega...mogoče pa je v tem problem, mogoče bi rabu nekako dodat nove character setse ali pa compilat mysql na novo z character sets utf-8???
Kaj ta slovenščina mora met te šumnike, predlagam referendum da se jih ukine!
snajko ::
Ja res žalostno da se moramo ukvarjati s temi trapastimi šumniki. Jaz sem v bistvu še čisto na začetku kar se tiče PHPja in MySqla, no postavil sem si zadevo v XPjih z Apachejem 1.3.34, MySQL - 4.1.14-nt, phpMyAdmin - 2.8.0.3 in PHP 5.1.2.
Ko v PMAdminu uvozim tabelo ki zgleda takole:
CREATE TABLE izdelki
(
id SMALLINT PRIMARY KEY,
vrsta_izdelka VARCHAR(50),
naziv CHAR(16),
cena DECIMAL(8,2),
datum_vnosa CHAR(24)
)
;
INSERT INTO izdelki
(
id,
vrsta_izdelka,
naziv,
cena,
datum_vnosa
)
VALUES
(
1,
'avtomobil',
'diana',
80000.00,
'prvi štirje zapisi'
),
(
2,
'lokomotiva',
'dizel',
120000.00,
'so bili uvoženi'
),
(
3,
'šumniki in',
'žđćčš',
1800.00,
'v bazo preko'
),
(
4,
'SIČNIKI',
'ŽĐĆČŠ',
2204.00,
'tekst datoteke'
)
Mi seveda šumnikov ne uvozi pravilno ne glede na to katero pisavo nastavim pri uvozu
Ko recimo to popravim v vmesniku na spletni strani dela OK in tudi ko dodajam nove izdelke se šumniki kažejo pravilno-uporabljam pa v vseh php fajlih charset=windows-1250. Ker bom verjetno veliko rabil uvažanje tabel s PMAdminom me zanima, če se da to kako urediti
Ko v PMAdminu uvozim tabelo ki zgleda takole:
CREATE TABLE izdelki
(
id SMALLINT PRIMARY KEY,
vrsta_izdelka VARCHAR(50),
naziv CHAR(16),
cena DECIMAL(8,2),
datum_vnosa CHAR(24)
)
;
INSERT INTO izdelki
(
id,
vrsta_izdelka,
naziv,
cena,
datum_vnosa
)
VALUES
(
1,
'avtomobil',
'diana',
80000.00,
'prvi štirje zapisi'
),
(
2,
'lokomotiva',
'dizel',
120000.00,
'so bili uvoženi'
),
(
3,
'šumniki in',
'žđćčš',
1800.00,
'v bazo preko'
),
(
4,
'SIČNIKI',
'ŽĐĆČŠ',
2204.00,
'tekst datoteke'
)
Mi seveda šumnikov ne uvozi pravilno ne glede na to katero pisavo nastavim pri uvozu
Ko recimo to popravim v vmesniku na spletni strani dela OK in tudi ko dodajam nove izdelke se šumniki kažejo pravilno-uporabljam pa v vseh php fajlih charset=windows-1250. Ker bom verjetno veliko rabil uvažanje tabel s PMAdminom me zanima, če se da to kako urediti
snajko ::
To je res za znort...probal 100 in eno varianto in nič enkrat dela to drugič to in obratno-nikoli pa da bi blo vse OK...največ kar mi je uspelo je to, da mi pri uvozu s PMAdminom vse prikaže pravilno, potem na spletu je totaln podn, ko pa ponovno prek spletnega obrazca popravim ali naredim nov vpis je pa vse OK. Čudi me to, da se ni najdu en pameten, ki bi ta problem rešu za zmeraj, ne pa da moraš prebrat in probat milijon variant pa nič ne rata. Polega tega sem pa še popoln začetnik in zatakne se mi tam kjer najmanj pričakujem...danes sem zabil še 6 ur in nič
krho ::
@snajko: za uvoz iz txt preko ukazne vrstice, mu podaš parameter, kateri pove v katerem encodingu je vhodna datoteka, napiši --help
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
krho ::
dodaj parameter --default-character-set=file encoding
file encoding bo v tvojem primeru cp1250
file encoding bo v tvojem primeru cp1250
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Šumniki in MySqlOddelek: Izdelava spletišč | 6657 (6194) | SPEEEED |
» | utf-8 in dolzina polja v mysqlOddelek: Izdelava spletišč | 3661 (3411) | tmz |
» | [PHP] charter set windows-1250Oddelek: Programiranje | 2806 (2806) | Blisk |
» | MySQL in šumnikiOddelek: Programiranje | 3039 (2810) | darkolord |
» | [mySql] šumniki - večni problemOddelek: Izdelava spletišč | 4228 (4087) | jvolk |