<p>您的代码是正确的,因为它在我的计算机上同时使用Python2和3(我在OSX上):</p>
<pre><code>~$ python -c 'print "تست"'
تست
~$ python3 -c 'print("تست")'
تست
</code></pre>
<p>问题是您的终端无法输出unicode字符。您可以通过将输出重定向到类似<code>python3 my_file.py > test.txt</code>的文件并使用编辑器打开该文件来验证它。</p>
<p>如果您使用的是Windows,那么可以使用像<a href="https://sourceforge.net/projects/console/" rel="nofollow">Console2</a>或<a href="https://sourceforge.net/projects/conemu/" rel="nofollow">ConEmu</a>这样的终端,它比Windows prompt更好地呈现unicode。</p>
<p>由于Windows的代码页/编码错误,这些终端也可能遇到错误。有一个小python包可以修复它们(正确设置它们):</p>
<p>1-安装<a href="https://github.com/Drekin/win-unicode-console" rel="nofollow">this</a><code>pip install win-unicode-console</code></p>
<p>2-将它放在python文件的顶部:</p>
<pre><code>try:
# Fix UTF8 output issues on Windows console.
# Does nothing if package is not installed
from win_unicode_console import enable
enable()
except ImportError:
pass
</code></pre>
<p>如果重定向到文件时出错,可以通过设置io编码进行修复:</p>
<p>在Windows命令行上:</p>
<pre><code>SET PYTHONIOENCODING=utf-8
</code></pre>
<p>在Linux/OS X终端上:</p>
<pre><code>export PYTHONIOENCODING=utf-8
</code></pre>
<h3>某些点</h3>
<ul>
<li>在python 3中不需要使用<code>u"aaa"</code>语法。默认情况下,字符串文本为unicode。</li>
<li>在python 3中,文件的默认编码是UTF8,因此不需要编码声明注释(例如<code># -*- coding: utf-8 -*-</code>)。</li>
</ul>