文字列を UTF-8 でエンコードし、対応する UTF-8 バイトを個別に表示したいと考えています。Python REPL では、次のようにするとうまくいくようです:
>>> unicode('©', 'utf-8').encode('utf-8')
'\xc2\xa9'
ここでは例としてU+00A9 COPYRIGHT SIGNを使用していることに注意してください。'\xC2\xA9'
U+00C2 と U+00A9 という 2 つの別個のコード ポイントで構成される文字列です。(UTF-8 でデコードすると、元の文字列が返されます'\xA9'
。)
次に、UTF-8 でエンコードされた文字列を JSON 互換の文字列に変換します。ただし、以下は私が望むことをしていないようです:
>>> import json; json.dumps('\xc2\xa9')
'"\\u00a9"'
U+00A9 (元のシンボル) を含む文字列が生成されることに注意してください。"\u00C2\u00A9"
代わりに、有効な JSONのように見える UTF-8 でエンコードされた文字列が必要です。
TL;DR Python で'©'
変換するにはどうすればよいですか? "\u00C2\u00A9"
明らかな何かが欠けているように感じます — これを行う組み込みの方法はありませんか?