源码:
[root@Debian 4test]#cat test.py
#!/usr/bin/python
# _*_ coding: utf-8 _*_
print u"\u5929"
环境 1:
在 mac 自带终端下, 可以打印出字符非常顺利。 mac 的 terminal 是支持 UTF-8 和 GBK 或者其他乱七八糟的编码的。所以这也合情合理。
环境 2:
通过 ssh 连接 debian 可以再次运行, 会报错如下
[root@Debian 4test]#./test.py
Traceback (most recent call last):
File "./test.py", line 5, in <module>
print u"\u5929"
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5929' in position 0: ordinal not in range(128)
搜索最后的报错信息,
http://www.saltycrane.com/blog/2008/11/python-unicodeencodeerror-ascii-codec-cant-encode-character/, 个人认为解决方法复杂不好。
环境详细配置:
[root@Debian 4test]#locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
库文件信息
[root@Debian 4test]#tree /usr/lib/locale
/usr/lib/locale
|-- C.UTF-8
| |-- LC_ADDRESS
| |-- LC_COLLATE
| |-- LC_CTYPE
| |-- LC_IDENTIFICATION
| |-- LC_MEASUREMENT
| |-- LC_MESSAGES
| | `-- SYS_LC_MESSAGES
| |-- LC_MONETARY
| |-- LC_NAME
| |-- LC_NUMERIC
| |-- LC_PAPER
| |-- LC_TELEPHONE
| `-- LC_TIME
`-- locale-archive
2 directories, 13 files
希望得到指点。我目前感觉是没有中文字体库的原因。我安装的是最小的(standard)版本。