Das Zeichenfolgen kommen leider in der erweiterten URL-codierenden Form, z. "% u616f"
Übrigens hat das nichts mit URL-Encoding zu tun. Es ist ein willkürlich erstelltes Format, das von der JavaScript-Funktion escape() erzeugt wird, und so gut wie nichts anderes. Wenn Sie können, wäre es am besten, das JavaScript so zu ändern, dass stattdessen die Funktion encodeURIComponent verwendet wird. Dadurch erhalten Sie eine korrekte URL-kodierte UTF-8-Zeichenfolge.
z.B. "% u616f". Ich möchte sie in einer Datei speichern, die dann die rohen Binärwerte enthält, z. 0x61 0x6f hier.
Sind Sie sicher 0x61 0x6f (die Buchstaben "ao") ist der Byte-Stream, den Sie speichern möchten? Das würde eine UTF-16BE-Codierung implizieren; Behandelst du all deine Saiten so?
Normalerweise möchten Sie die Eingabe in Unicode und dann schreiben Sie es mit einer geeigneten Codierung, wie UTF-8 oder UTF-16LE. Hier ist ein schneller Weg, es zu tun, die sich auf dem Hack von Python machen lesen '% u1234' als String-Escape-Format u '\ u1234':
>>> 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'
Welche Version von Python? Bitte geben Sie einige Beispiele von dem, worüber Sie sprechen. Gib sie nicht ein. tue 'print repr (your_string)' wenn Python 2.x oder 'print (ascii (dein_string))' wenn Python 3.x, bearbeite deine Frage und kopiere/kopiere die Druckergebnisse. Woher bekommst du sie? –