擅长:python、mysql、java
<p>这里有一个粗糙的方法。尝试解码为unicode转义,如果成功,则结果字符串将比原始字符串短。在</p>
<pre><code>str_escaped = '"A\u0026B"'
str_unicode = '"Война́ и миръ"'
arr_all_strings = [str_escaped, str_unicode]
def decoder(s):
y = s.decode('unicode-escape')
return y if len(y) < len(s) else s.decode('utf8')
for s in arr_all_strings:
print s, decoder(s)
</code></pre>
<p><strong>输出</strong></p>
^{pr2}$
<hr/>
<p>但是说真的,如果您可以迁移到Python3,您将省去很多痛苦。如果您不能立即迁移到Python3,您可能会发现本文很有帮助:<a href="http://nedbatchelder.com/text/unipain.html" rel="nofollow noreferrer">Pragmatic Unicode</a>,这是由经验丰富的Ned Batchelder编写的。在</p>