"Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > 7stud schrieb: >> When I try the latter example, I get an error: >> >> lst = ["hello", "world"] >> print unicode.join(u"\u00d7", lst) >> >> Traceback (most recent call last): >> File "test1.py", line 2, in ? >> print unicode.join(u"\u00d7", lst) >> UnicodeEncodeError: 'ascii' codec can't encode character u'\xd7' in >> position 5: ordinal not in range(128) > > You are mixing unicode with bytestrings here. make "hello" u"hello", > same for "world". > Sorry Diez, wrong answer. A unicode separator will cause all the strings being joined to be decoded using the default encoding (which could cause problems with non-ascii characters in the decoded strings), but the problem here is with encoding, not decoding.
7stud: the problem isn't the join, it is printing the string on your terminal which is the problem. Try just: print u"\u00d7" and you'll get the same problem. Or: lst = ["hello", "world"] joined = unicode.join(u"\u00d7", lst) will work, but you'll still have problems printing the result. If you try it using a Python interpreter with an appropriate output encoding it will work (idle can handle it on my system, but the DOS prompt with its default codepage cannot). -- http://mail.python.org/mailman/listinfo/python-list