擅长:python、mysql、java
<p><a href="https://stackoverflow.com/users/65696/tokenmacguy">@TokenMacGuy</a>已将此答案发布到<a href="https://stackoverflow.com/questions/15275196/how-to-encode-characters-whoes-ascii-is-more-then-128-into-utf-16">the old question which you've deleted</a>。你仍然可以看到这个问题,因为这个问题已经被删除了</p>
<hr/>
<p>所以你想从unicode转换成ascii表示法,其中非ascii码位被“转义”?如果是的话,那么:</p>
<pre><code>>>> sample = u'some stuff: éŘ'
>>> ''.join(c if 0 < ord(c) <= 127 else '\\u{:04x}'.format(ord(c)) for c in sample)
u'some stuff: \\u00e9\\u0158'
>>> print ''.join(c if 0 < ord(c) <= 127 else '\\u{:04x}'.format(ord(c)) for c in sample)
some stuff: \u00e9\u0158
</code></pre>
<p>顺便说一下,这个算法是<em>而不是</em>utf-16;请不要那么叫它;它是ASCII!UTF-16如下所示:</p>
^{pr2}$
<p><sub>注意:您没有指定此示例是在python2.7中,而不是python3;如果您需要,请将其添加到您的问题中</sub></p>
<hr/>
<p>我不确定这是否对你有帮助。或者,<a href="https://stackoverflow.com/users/65696/tokenmacguy">@TokenMacGuy</a>自己会编辑这个答案,使它更有帮助。在</p>