On 12/1/2009 4:05 AM, Gnarlodious wrote:
Thanks for the help, but it doesn't work. All I get is an error like:
UnicodeEncodeError: 'ascii' codec can't encode character '\\u0107' in
position 0: ordinal not in range(128)
The error says it all; you're trying to encode the chinese character
using 'ascii' codec.
> malformed header from script. Bad header=\xe6\x99\x89
Hmmm... strange. The \xe6\x99\x89 happens to coincide with UTF-8
representation of 晉. Why is your content becoming a header?
#!/usr/bin/python
do you know what python version, exactly, that gets called by this
hashbang? You mentioned that you're using python 3, but I'm not sure
that this hashbang will invoke python3 (unless Mac OSX has made a
progress above other linux distros and made python 3 the default python).
Strangely, if I run the script in Terminal it acts as expected.
I think I see it now. You're invoking python3 in the terminal; but your
server invokes python 2. Python 2 uses byte-based string literal, while
python 3 uses unicode-based string literal. When you try to '
晉\n'.encode("utf-8"), python 2 tried to decode the string using 'ascii'
decoder, causing the exception.
--
http://mail.python.org/mailman/listinfo/python-list