擅长:python、mysql、java
<blockquote>
<p>The strings sadly come in the extended URL-encoding form, e.g. "%u616f"</p>
</blockquote>
<p>顺便说一句,这与URL编码无关。它是JavaScript escape()函数生成的任意格式,几乎没有其他格式。如果可以的话,最好的做法是更改JavaScript以使用encodeURIComponent函数。这将为您提供一个正确的、标准的URL编码的UTF-8字符串。在</p>
<blockquote>
<p>e.g. "%u616f". I want to store them in a file that then contains the raw binary values, eg. 0x61 0x6f here.</p>
</blockquote>
<p>您确定0x61 0x6f(字母“ao”)是要存储的字节流吗?这意味着UTF-16BE编码;您是这样对待所有字符串的吗?在</p>
<p>通常,您希望将输入转换为Unicode,然后使用适当的编码(如UTF-8或UTF-16LE)将其写出。下面是一个快速的方法,依靠让Python读取'%u1234'作为字符串转义格式u'\u1234'的方法:</p>
<pre><code>>>> ex= 'hello %e9 %u616f'
>>> ex.replace('%u', r'\u').replace('%', r'\x').decode('unicode-escape')
u'hello \xe9 \u616f'
>>> print _
hello é 慯
>>> _.encode('utf-8')
'hello \xc2\xa0 \xe6\x85\xaf'
</code></pre>