擅长:python、mysql、java
<p>不需要调用<code>.encode()</code>,也不需要显式调用<code>locale.getdefaultlocale()</code>:</p>
<pre><code>#!/usr/bin/env python
# -*- coding: utf-8 -*-
import io
with io.open('/tmp/test', 'w') as file:
file.write(u"中文" * 4)
</code></pre>
<p>它使用<code>locale.getpreferredencoding(False)</code>字符编码将Unicode文本保存到文件中。</p>
<p>在Python 3上:</p>
<ul>
<li><p>不需要使用显式编码声明(<code># -*- coding: utf-8 -*-</code>),就可以在Python源代码中使用文字非ascii字符。<code>utf-8</code>是默认值。</p></li>
<li><p>你不需要使用<code>import io</code>:内置的<code>open()</code>就在那里<code>io.open()</code></li>
<li>您不需要使用<code>u''</code>(<code>u</code>前缀)。<code>''</code>默认情况下,文本为Unicode。如果您想省略<code>u''</code>,那么将<code>from __future__ import unicode_literals</code>放回问题代码中。</li>
</ul>
<p>也就是说,完整的Python 3代码是:</p>
<pre><code>#!/usr/bin/env python3
with open('/tmp/test', 'w') as file:
file.write("中文" * 4)
</code></pre>