Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Konverzija veelike mysql baze iz windows-1250 u utf-8

  • 33 odgovora
  • 10.883 pregleda

Najnovija ↓

Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 19:47 · pre 246 meseci #21
OK. Mislim da sam riješio.

Pošto je mysql-dump konvertovao u utf8 treba da ga vratiš u prvobitno stanje:
Code:
$ iconv -f utf8 -t cp1252 sf_dump.sql > tmp.sql

pa zatim da pravilno uradiš konverziju u utf8:
Code:
$ iconv -f cp1250 -t utf8 tmp.sql > konacni.sql

Nakon toga ono "latin1" prepravi u utf-8 i trebalo bi da radi.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 20:01 · pre 246 meseci #22
iconv -f utf8 -t cp1252 sf_dump.sql > tmp.sql
iconv: illegal input sequence at position 15625255
:(

A ovo je iz phpmyadmina:
MySQL - 4.1.19-standard
* Protocol version: 10
* Server: Localhost via UNIX socket
* MySQL charset: UTF-8 Unicode (utf8)

Skoro je vršen upgrade na 4.1 verziju. Verovatno je tada namešten default utf-8.
Potpis
10 SIN
20 GOTO HELL
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 20:08 · pre 246 meseci #23
Pogledao sam priloženu arhivu i fajl sf_dump.sql je već u utf8.

Šta se desi kad njega importuješ u bazu i promeniš php skripte da daju browseru utf8 charset? Šta se desi ako isto to urediš ali prethodno staviš da je tip tabela utf8?

Nemam sad 4.1 instalaciju da probam da importujem ovo nekako, ali videću za vikend ako bude vremena da probam i ako ti do tada ne rešiš ovo, naravno.
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 20:11 · pre 246 meseci #24
Citat:
Gojko Vujovic: Pogledao sam priloženu arhivu i fajl sf_dump.sql je već u utf8.

Šta se desi kad njega importuješ u bazu i promeniš php skripte da daju browseru utf8 charset? Šta se desi ako isto to urediš ali prethodno staviš da je tip tabela utf8?

Nemam sad 4.1 instalaciju da probam da importujem ovo nekako, ali videću za vikend ako bude vremena da probam i ako ti do tada ne rešiš ovo, naravno.

Probao sam i to.
Dobijem isto što sam i imao. Naša slova na 1250, smeće na utf-8. To me i zbunjuje.
Probaću malo da se poigram sada sa mysqldump --default-character-set=charset_name
Možda ubodem jednom dobar charset.
Potpis
10 SIN
20 GOTO HELL
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 20:20 · pre 246 meseci #25
Citat:
Sauron: iconv -f utf8 -t cp1252 sf_dump.sql > tmp.sql
iconv: illegal input sequence at position 15625255
:(

Hm... na fajlu koji si priložio je kod mene sve prošlo bez problema.
Pogledaj fajl koji prilažem da vidiš da su sva slova čitljiva. Fajl je u utf-8.

Više mi ništa ne pada na pamet.
Možda da probaš da ono "latin1" u SQL fajlu da promijeniš u "cp1250", pa da takav fajl bez konverzije probaš importovati u bazu...
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 20:24 · pre 246 meseci #26
Citat:
Not now, John!: Hm... na fajlu koji si priložio je kod mene sve prošlo bez problema.
Pogledaj fajl koji prilažem da vidiš da su sva slova čitljiva. Fajl je u utf-8.

To je samo deo fajla. Ceo dump je 50mb. Možda greške nastaju kasnije?
Potpis
10 SIN
20 GOTO HELL
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 11.08.2006. u 21:04 · pre 246 meseci #27
Citat:
Sauron: To je samo deo fajla. Ceo dump je 50mb. Možda greške nastaju kasnije?

Da, sigurno, ali ne shvatam zašto... Kao da je baza bila u više kodnih rasporeda, npr. jedna tabela je u latin2, druga u cp1250, treća ... što me čudi.
Probaj da dumpuješ samo definicije tabela, bez podataka, pa vidi da li su sve u latin1 kodnom rasporedu.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 01:06 · pre 246 meseci #28
Problem je sigurno u bazi.
mysqldump npantos_sf >sf_dump.sql --default-character-set=latin1 (pošto je od verzije 4.1 default utf8)
iconv -f cp1250 -t utf8 sf_dump.sql >konacni.sql
I sve je lepo bilo kada sam odradio samo par tabela.
Ali kada pokušam sve od jednom... to je već problem...
Nazad na izučavanje :)
Potpis
10 SIN
20 GOTO HELL
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 01:22 · pre 246 meseci #29
Citat:
Sauron: mysqldump npantos_sf >sf_dump.sql --default-character-set=latin1

Zar ne bi trebalo:
Code:
$ mysqldump --default-character-set=latin1 npantos_sf > sf_dump.sql


E... čudi me da ti je to toliko muke zadalo. U principu bi to trebalo da bude jednostavan problem...

Da li možeš zaključiti koji karakter pravi problem, nakon što iconv ispiše poruku o grešci?
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 03:01 · pre 246 meseci
izmenjeno 1 put, poslednji put Sauron 12.08.2006. u 04:06
  1. Sauron12.08.2006. u 04:06zapis iz teksta poruke
#30
Bez muke nema nauke :)
Pucanje pri konverziji mi je zadavala tabela shoutbox. Ko zna kakvih je tamo sve karaktera bilo...
Ispraznio sam tu tabelu i sve je prošlo.
Baza je lepo konvertovana, i kada iz browsera pogledam dump, vide se sva naša slova na utf-8 enkodingu.
Importujem dump nazad u bazu, ali slova nestaju.
Probao sam i sa
Code:
mysql --default-character-set=utf8 --user=xxx --password=xxx imebaze <konacni.sql

ali opet ništa.
Pogledao sam tekstu u samoj bazi pomoću phpmyadmina, i tamo su slova ok.
Ali svuda drugde se slova ne vide.
100% je podešen utf-8 enkoding na forumu.
Potpis
10 SIN
20 GOTO HELL
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 11:09 · pre 246 meseci #31
Da li si u definicijama tabela isptavio ono "CHARSET=latin1" u "CHARSET=utf8".
Ako jesi onda mislim da je jedino objašnjenje da phpBB očekuje podatke u latin1 kodnom rasporedu, pa obavlja konverziju u hodu. Novija verzija phpBB? Postoje li neka podešavanja u phpBB konfiguracionom fajlu koja se tiču kodnog rasporeda?
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 12:38 · pre 246 meseci #32
Malo sam se poigrao phpBB-om.
Ako je verzija MySQL ranije bila 3.x, a sad je 4.x onda u fajlu config.php izmijeni liniju:
Code:
$dbms = 'mysql4';

da bude
Code:
$dbms = 'mysql4';

Sva ostala podešavanja zavise od kodnog rasporeda prevoda.
Ako si imao više prevoda u različitim kodnim rasporedima, onda je i tekst u tabelama bio u raznim kodnim rasporedima, pa je vjerovatno to pravilo problem sa konverzijom.
Onaj kodni raspored koji je naveden u prevodu je kodni raspored foruma i trebalo bi da je za sve prevode (jezike) isti kodni raspored (utf8) da bi svi vidjeli isti tekst, nezavisno od izabranog jezika. Kod mene je engleski jezik bio iso-8859-1 (latin1), pa sam najprije pomoću iconv prebacio taj fajl u utf8 i izmijenio liniju:
Code:
$lang['ENCODING'] = 'iso-8859-1';

u
Code:
$lang['ENCODING'] = 'utf-8';

Nakon Refresha, forum je sad bio u utf-8 kodnom rasporedu i mogao sam da unosim Unicode znakove i da ih vidim normalno.
Sad bi trebalo da možeš importovati taj konvertovani fajl u bazu i da možeš vidjeti sve znakove bez problema, ako je utf-8 kodni raspored foruma.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Konverzija veelike mysql baze iz windows-1250 u utf-8 12.08.2006. u 14:50 · pre 246 meseci #33
KONAČNO :)
Evo da sumiram kako sam namestio:
Ispraznio sam phpbb_shoutbox jer je tamo bilo karaktera koji su pravili probleme pri iconv konverziji.
Code:
mysqldump npantos_sf >sf_dump.sql --default-character-set=latin1

Code:
iconv -f cp1250 -t utf8 sf_dump.sql >konacni.sql

Editovao sam konacni.sql, zamenio latin1 za utf8

Sada sam imao problem da se na forumu i dalje ne vidi dobro utf-8, iako je dobro podešen.
editovao my.cnf
dodao:
Code:
[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci 
[client]
default-character-set=utf8

Restartovao mysql, i tek onda je proradilo.

Proba je uspela, i sad mogu na miru sve baze konvertovati :)
Hvala puno Not now Johnu i Gojku na pomoću :)
Potpis
10 SIN
20 GOTO HELL
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme