🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#27100
Author: Daniel Mróz
Date: Sat, 26 Dec 2009 17:05
31 lines
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