Piszę mały skrypt, który wczytuje słownik wyrazów polskich,
kodowanie ISO-8859-2 (inaczej latin2) do lokalnej bazy mysql'owej.
Jestem w środowisku linuksowym (ubuntu), a z bazą łącze się przy
pomocy biblioteki mysql-python-1.3.3.
Po wczytaniu słowa ze znakami polskimi mam w bazie krzaczki;/ ...
jeżeli bezpośrednio wczytuje porzez inserta jakiegoś stringa typu
"żźćąęłó..." wszystko jest ok (kodowanie tabeli ustawione na latin2).
Podejrzewam, że to wina pythona (?), biblioteki mysql-python-1.*.*
(?) .... lub ustawień locali (?)..., a może kodowania w samym pliku
skryptu pythona..(# code: latin2) jednak metoda prób i błędów już mi
się mówiąc delikatnie znudziła...
Czy ktoś miał podobny problem lub/i zna rozwiazanie mojego ?
ładnie proszę o pomoc :)
dzięki.
--
pozdrawiam,
D.F.
> Piszę mały skrypt, który wczytuje słownik wyrazów polskich,
> kodowanie ISO-8859-2 (inaczej latin2) do lokalnej bazy mysql'owej.
> Jestem w środowisku linuksowym (ubuntu), a z bazą łącze się przy
> pomocy biblioteki mysql-python-1.3.3.
> Po wczytaniu słowa ze znakami polskimi mam w bazie krzaczki;/ ...
> jeżeli bezpośrednio wczytuje porzez inserta jakiegoś stringa typu
> "żźćąęłó..." wszystko jest ok (kodowanie tabeli ustawione na latin2).
> Podejrzewam, że to wina pythona (?), biblioteki mysql-python-1.*.*
> (?) .... lub ustawień locali (?)..., a może kodowania w samym pliku
> skryptu pythona..(# code: latin2) jednak metoda prób i błędów już mi
> się mówiąc delikatnie znudziła...
MySQL ma kodowanie ustawiane w kilku miejscach, tj. kodowanie danych w
tabeli/kolumnie i kodowanie danych w połączeniu. Dla Twojej własnej
wygody sprawdź, czy Twoja wersja MySQLdb przyjmuje unicode, ustaw w
parametrach połączenia to samo kodowanie, jakie masz zadeklarowane w
tabeli (i w my.cnf), a potem pakuj obiekty unikodowe i pozwól bibliotece
dokonać wymaganych konwersji.
--
Jarek Zgoda
Skype: jzgoda | GTalk: zg...@jabber.aster.pl | voice: +48228430101
"We read Knuth so you don't have to." (Tim Peters)