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