Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Kodowanie stringu pod windows i linux

7 views
Skip to first unread message

Daniel Mróz

unread,
Dec 26, 2009, 12:05:04 PM12/26/09
to
On 23.12.2009, Michal M <mmie...@tycowaterworks.pl> wrote:
> Hmm z pierwszych prób, zgaduję, (mając na uwadze obie Wasze
> odpowiedzi), że jeśli mam tekst w zmiennej i jest on w unicode to
> muszę najpierw powiedzieć pythonowi, że jest w unicode a później
> dopiero zakodować? To by wyglądało tak
Nie. W pliku z kodem masz w zmiennej jakiś ciąg bajtów. Kodowanie
jest sprawą umowną i w Twoim przypadku jest to UTF-8 (gdyż użyłeś
edytora, który w takim kodowaniu zapisuje pliki).
string.decode('utf-8') zwraca obiekt Unicode (który, w uproszczeniu,
nie posiada kodowania) i Python doskonale wie o tym, że jest to Unicode.
Obiekt Unicode możesz traktować jako czarną skrzynkę, w której są
napisy (nie ciągi bajtów, czy ciągi znaków w jakimś kodowaniu).
Napisy te możesz wyciągnąć w wybranym przez siebie kodowaniu np.
poprzez unicode.encode().

"ĄĆ" - ciąg znaków w jakimś kodowaniu (cztery bajty, jeśli UTF-8)
"ĄĆ".decode("utf-8") - obiekt Unicode, przechowujący napis "przetłumaczony"
z UTF-8 (uwaga na #-*- coding -*-).
"ĄĆ".decode("utf-8").encode("ISO8859-2") - ciąg znaków w kodowaniu
ISO8859-2, przeciągnięty przez obiekt Unicode z ciągu znaków
w UTF-8.


Pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <be...@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]

0 new messages