Thread View: pl.comp.lang.python
1 messages
1 total messages
Started by Daniel Mróz
Sat, 26 Dec 2009 17:05
Re: Kodowanie stringu pod windows i linux
Author: Daniel Mróz
Date: Sat, 26 Dec 2009 17:05
Date: Sat, 26 Dec 2009 17:05
31 lines
2326 bytes
2326 bytes
On 23.12.2009, Michal M <mmierzwa@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 <beorn@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+ ]
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads