本稿では Python3 で、数値文字参照をUNICODE文字に変換する方法について解説します。
数値文字参照とは?¶
数値文字参照とは、HTMLなどのSGML文章において、文字を参照するための手段の一つです。 例えば「♪」などのような文字を確実に指定するために、「♪」や「♪」と記述することができます。 10進数表記だと「&#」で始めて数字を、16進数表記だと「&#x」で始めて16進数文字を記載します。
数値文字参照を文字に変換する¶
このような数値文字参照を、人が見てわかるUNICODEの文字に変換したい場合があります。 筆者は、Jupyter Notebook が生成する HTML の一部が数値文字参照だったので、UNICODE文字に戻したいと思い、本稿を書いています。
数値文字参照を文字に変換するには、html モジュールを利用するのが簡単そうです。 インターネットで検索すると、関数を自作している解説が多くありますが、html.unescape() を利用することで、簡単にUNICODE文字を得ることができました。 次に利用方法の例を示します。
import html
# 10進数の数値文字参照を変換する例
print(html.unescape("文章♪"))
# 16進数の数値文字参照を変換する例
print(html.unescape("あいうえおabcde"))