ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

文字とUTF-8, UTF-16, SJIS, EUCの相互変換【Python】

f:id:twx:20190318192518p:plain

UTF-8をはじめとする各種文字コードと実際の文字を相互変換する方法について説明します。

文字コードの対応表はこちらのサイトを参考にしました。なお、UTF-16はUTF-16ビッグエンディアンを表しています。 ash.jp

今回使う文字は「亜」です。各種文字コードは以下の通りです。

文字 SJIS EUC UTF-8 UTF-16
889F B0A1 E4BA9C 4E9C

UTF-16 ⇔ 文字

hex(ord('亜'))
# '0x4e9c'

chr(int('4e9c', 16))
# '亜'

UTF-8 ⇔ 文字

'亜'.encode('utf-8')
# b'\xe4\xba\x9c'

b'\xe4\xba\x9c'.decode('utf-8')
# '亜'

EUC ⇔ 文字

'亜'.encode('euc-jp')
# b'\xb0\xa1'

b'\xb0\xa1'.decode('euc-jp')
# '亜'

SJIS ⇔ 文字

'亜'.encode('sjis')
# b'\x88\x9f'

b'\x88\x9f'.decode('sjis')
# '亜'

こんな感じです。

本日は「PythonでUTF-8と文字の相互変換」をご紹介しました。良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリックをお願いします。 それではまたー!

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu