Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
Import bazy mysql w kodowaniu ISO-8859-2
Autor Wiadomość
COLOBOT 
Administrator sieci
Założyciel portalu


Twoja ulubiona misja: Obie na Orfenii
Pomógł: 1 raz
Dołączył: 07 Lut 2008
Posty: 353
Skąd: Jarocin
Wysłany: 08-02-2010, 21:07   Import bazy mysql w kodowaniu ISO-8859-2

Będzie krótko, konkretnie i rzeczowo.
Na pewnym serwerze miałem postawione forum i padła mi baza danych. Skrypt forumowy zapisywał codziennie kopie na ftp i jestem w posiadaniu najnowszej kopii. Problem polega na tym, że kopia jest zapisana w kodowaniu ISO-8859-2. Przy każdej próbie importu bazy na nowy serwer zamiast polskich liter pojawiają się znaki zapytania.

I moje pytanie: w jaki sposób/czym przekonwertować tę kopię bazy danych aby była zgodna z jakimkolwiek standardem obsługiwanym przez PHPMyAdmina (mysql3, mysql4, ANSI i parę innych jest do wybory)?

W połowie rozwiązałem ten problem. Baza przy tworzeniu tabel domyślnie korzysta z porównywania napisów "latin1_swedish_ci", a powinna z "utf8_polish_ci". Cholerny skrypt nijak nie chce się przerzucić na to kodowanie. Jak mu to narzucić?
_________________
Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
 
 
     
Bartek c++ 


Twoja ulubiona misja: Tropica - Czas na atak
Pomógł: 6 razy
Wiek: 20
Dołączył: 07 Lip 2009
Posty: 390
Wysłany: 08-02-2010, 21:31   

Gdzieś necie lerzy kod HTML kodowujący strone na polski język ale kurde zapomniałem gdzie to jest poszukam czegoś. :-/
Cytat:
wymyśliłem taki myk żeby sprawdzić jakie dokładnie siedzi kodowanie w starej bazie, jakie widzi adodb:

$db = NewADOConnection('######');
ADOdb_Active_Record::SetDataba seAdapter($db);


class Wykonawc extends ADOdb_active_record {}
$tst = new Wykonawc("wykonawc");

$tst->Load("id=1");
$naz_wyk=$tst->naz_wyk;
$kodowanie=mb_detect_encoding( $naz_wyk)
echo($kodowanie);

i pozniej jesli chodzi o przekonwertowanie:

$txt = text z nowej bazy;
echo(iconv(mb_detect_encoding( $txt),$kodowanie,$txt));

to sie tyczy synchronizatora zeby wiedzial co na co przekodowac... moze zadziala;)
to z jakiejś stronki, cytowanie jakiegoś gościa :-)

jeszcz to
http://forum.php.pl/index.php?showtopic=38309
_________________

 
     
Schocker 
Wants cookies!


Twoja ulubiona misja: Hmm... All.
Pomógł: 3 razy
Wiek: 22
Dołączył: 31 Maj 2009
Posty: 177
Skąd: Wadowice
Wysłany: 08-02-2010, 22:50   

Czyżby PMA nie obsługiwał kodowania ISO-8859-2? Dziwne.. Sprawdzę to jutro.
Osobiście korzystam z utf8-bin na moim lokalnym serwerze i nie ma żadnych problemów. ^^
_________________
But there's no sense crying over every mistake, you just keep on trying 'till you ran out of cake -GlaDOS
 
 
     
COLOBOT 
Administrator sieci
Założyciel portalu


Twoja ulubiona misja: Obie na Orfenii
Pomógł: 1 raz
Dołączył: 07 Lut 2008
Posty: 353
Skąd: Jarocin
Wysłany: 08-02-2010, 23:15   

Obsługuje, tyle że przy dodawaniu tabel kodowanie zostaje automatycznie ustawione na szweckie latin, a powinno być polskie utf-8 (chodzi o ostatnią linijkę - w mojej kopii bazy jej nie ma):
Kod:
DROP TABLE IF EXISTS `phpbb_adv_person`;
CREATE TABLE IF NOT EXISTS `phpbb_adv_person` (
  `user_id` mediumint(9) NOT NULL default '0',
  `person_id` mediumint(9) NOT NULL default '0',
  `person_ip` char(8) collate utf8_polish_ci default '',
  PRIMARY KEY  (`user_id`,`person_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


Normalnie nie problem to zmienić, ale tabel jest ponad 70.

PS: Spróbuję coś wykombinować w języku AWK - mam nadzieję, że mi się uda.
_________________
Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
 
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 09-02-2010, 14:02   

Przekonwertuj na UTF8 przy pomocy Notepad++. A tamtą linię możesz dodać bardzo prostym poleceniem zamiany.
_________________
1Tbps Project && Telecomix Network

 
 
     
COLOBOT 
Administrator sieci
Założyciel portalu


Twoja ulubiona misja: Obie na Orfenii
Pomógł: 1 raz
Dołączył: 07 Lut 2008
Posty: 353
Skąd: Jarocin
Wysłany: 09-02-2010, 14:40   

Konwersja nic nie daje (w ISO-8859-2 też wczytuje poprawnie), tu o chodzi o opcję "porównywanie napisów".

A z tym poleceniem zamiany to jeśli chodzi o opcję "Znajdź/zamień" to nie ma tak prosto, gdyż przeplatane są polecenia CREATE TABLE i INSERT INTO, a w tym drugim nie można dodać tej dodatkowej linijki.

W każdym razie wszystkim dziekuję za zainteresowanie, przynajmniej wiem o co chodzi, więc sobie poradzę.
_________________
Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012