Unicode literals to latin-1

Berteun Damman berteun at NO_SPAMdds.nl
Wed Jan 30 10:21:23 CET 2008


On Wed, 30 Jan 2008 09:57:55 +0100, <David.Reksten at sweco.no>
<David.Reksten at sweco.no> wrote:
> How can I convert a string read from a database containing unicode
> literals, such as "Fr\u00f8ya" to the latin-1 equivalent, "Frøya"?
>
> I have tried variations around
>   "Fr\u00f8ya".decode('latin-1')
> but to no avail.

Assuming you use Unicode-strings, the following should work:
  u"Fr\u00f8ya".encode('latin-1')

That is, for some string s, s.decode('encoding') converts the
non-unicode string s with encoding to a unicode string u. Whereas
for some unicode string u, u.encode('encoding') converts the unicode
string u into a non-unicode string with the specified encoding.

You can use s.encode() on a non-unicode string, but it will first try to
decode it (which might give an DecodeError if there are non-ASCII
characters present) and it will then encode it.

Berteun



More information about the Python-list mailing list