unicode(lString, "utf8") vs. lString.encode("utf8") vs. ur"jakiś tekst"

Jax 77jacek at wp.pl
Fri Apr 24 02:31:56 EDT 2009


Witam

Zakładam, że kod Pythona w drugiej lini ma:
# -*- coding: utf-8 -*-

oraz gdzieś na początku:
reload(sys)
sys.setdefaultencoding('utf8')

No i mam takie pytania odnośnie unicode w utf8:

Czy obie poniższe linie dają ten sam efekt, czyli obiekt unicode zakodowany w
utf8?
lString = unicode(lString, "utf8")
lString = lString.encode("utf8")

Konkretnie chodzi mi czy aby mieć obiekt unicode zakodowany w utf8 muszę robić
coś takiego:
lString = unicode(lString.decode("ISO-8859-15").encode("utf8"), "utf8")
czy może wystarczy:
lString = lString.decode("ISO-8859-15").encode("utf8")

Dodatkowo mam pytanie: Czy aby mieć ze stringu podanego w kodzie pythona obiekt
unicode zakodowany w utf8 zawsze muszę robić:
lString = unicode("jakiś tekst", "utf8")
czy może wystarczy
lString = ur"jakiś tekst"

Pytam, bo ciągłe klepanie unicode(xxx, "utf8") jest męczące.

z góry dzięki

Jax



More information about the Python-list mailing list