Character Encodings and display of strings

Fredrik Lundh fredrik at
Mon Nov 13 15:39:44 CET 2006

"JKPeck" wrote:

>I am trying to understand why, with nonwestern strings, I sometimes get
> a hex display and sometimes get the string printed as characters.
> With my Python locale set to Japanese and with or without a # coding of
> cp932 (this is Windows) at the top of the file, I read a list of
> Japanese strings into a list, say, catlis.
> With this code
> for item in catlis:
>       print item
> print catlis
> print " ".join(catlis)
> the first print (print item) displays Japanese text as characters..
> The second print (print catlis) displays a list with the double byte
> characters in hex notation.
> The third print (print " ".join(catlis)) prints a combined string of
> Japanese characters properly.
> According to the print documentation,
> "If an object is not a string, it is first converted to a string using
> the rules for string conversions"
> but the result is different with a list of strings.

a list is not a string, so it's converted to one using the standard list representation
rules -- which is to do repr() on all the items, and add brackets and commas as

for some more tips on printing, see:


More information about the Python-list mailing list