mysqldump default-character-set
Marcin Kurzyna
pld w nius.waw.pl
Czw, 7 Gru 2006, 10:59:22 CET
On Thursday 07 December 2006 07:40, Wojciech Błaszkowski wrote:
> Oglądając wspomniany poprzednio dump edytorem widzę polskie znaki tylko
> wtedy, jeśli ustawię sobie kodowanie w edytorze na latin2. Dlatego też
> spodziewałem się znaleść latin2 w poniższym przykładzie, a nie utf8:
>
> ) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;
>
> Pytanie: czy taki dump jest poprawny ?
> Moim zdaniem - nie, dlatego prośba:
> proszę o wskazanie mi miejsca, w którym robię błąd :)
taki dump jest poprawny ;-) już tłumaczę:
twoje tabele mają definicje że są utf-8. taka więc definicja musi się zawrzeć
w dumpie.
to co ustawiasz (set-character-encoding) zmienia kodowanie połączenia i tak
jak piszesz dzięki temu stworzony plik jest latin2, ale to jest tylko
kodowanie w jakim plik jest zapisany (ustawia kodowanie przesyłanych znaków,
nie ich treść - nie wpływa na merytoryczną zawartość danych); nie zmieni to
samej definicji tabeli.
żeby zmienić definicję tabel musiał byś ją zmienić w samej bazie, przez alter
table... czy coś takiego. wtedy jeśli zmienisz na latin2 a dump zrobisz w utf
to nadal będzie w definicji latin2.
ogólnie: set-character-encoding służy tylko do ustawienia połączenia ale nie
wpływa nijak na strukturę danych; do tego służy SQL.
mam nadzieję że napisałem tak żeby dało się to zrozumieć :)
pozdrawiam,
m.
ps. odpisuj na listę wątki zaczęte na liście ;]
--
Marcin Kurzyna, CrystalPoint Software
-- www.crystalpoint.pl --
Więcej informacji o liście dyskusyjnej pld-users-pl