擅长:python、mysql、java
<p>最好不要破解<code>repr()</code>,而是从头开始使用正确的编码。您可以使用编码<code>string_escape</code>直接获取repr的编码</p>
<pre><code>>>> "naïveté".encode("string_escape")
'na\\xc3\\xafvet\\xc3\\xa9'
>>> print _
na\xc3\xafvet\xc3\xa9
</code></pre>
<p>对于转义“-引号,我认为在转义编码之后使用简单的替换是一个完全明确的过程:</p>
<pre><code>>>> '"%s"' % 'data:\x00\x01 "like this"'.encode("string_escape").replace('"', r'\"')
'"data:\\x00\\x01 \\"like this\\""'
>>> print _
"data:\x00\x01 \"like this\""
</code></pre>