擅长:python、mysql、java
<p>在脚本中运行时,代码可以工作,因为Python将输出编码为终端应用程序正在使用的任何编码。如果你是管道,你必须自己编码。</p>
<p>经验法则是:始终在内部使用Unicode。解码你收到的,编码你发送的。</p>
<pre><code># -*- coding: utf-8 -*-
print u"åäö".encode('utf-8')
</code></pre>
<p>另一个说教的例子是一个Python程序,用于在ISO-8859-1和UTF-8之间进行转换,使两者之间的所有内容都大写。</p>
<pre><code>import sys
for line in sys.stdin:
# Decode what you receive:
line = line.decode('iso8859-1')
# Work with Unicode internally:
line = line.upper()
# Encode what you send:
line = line.encode('utf-8')
sys.stdout.write(line)
</code></pre>
<p>设置系统默认编码是个坏主意,因为您使用的某些模块和库可以依赖于它是ASCII。别这么做。</p>