擅长:python、mysql、java
<p>这段代码使用了与Eugene Lisitsky相似的方法,只是它运行在python2上。在python2中,<em>可能有一种更简洁的方法来实现这一点,但它似乎可以正确地处理操作中的数据</p>
<p>顺便说一句,当你问到一个与Unicode有关的问题时,你应该用一个适当的Python版本标记来标记你的问题,因为python3中的Unicode处理方式与python2中的工作方式(或者失败了:)大不相同。在</p>
<pre><code>import codecs
import urllib
fname = 'input.txt'
with open(fname, 'rb') as f:
for line in f:
line = line.strip()
line = urllib.unquote(line)
if r'\x' in line:
line = codecs.unicode_escape_decode(line)[0]
line = line.encode('latin1')
line = line.decode('utf-8')
print repr(line), line
</code></pre>
<p><strong>输出</strong></p>
^{pr2}$
<p>如您所见,我已经将所有字符串转换为Unicode对象。如果出于某种原因,您希望它们成为纯python2字符串,只需消除<code>line = line.decode('utf-8')</code>行。在</p>