Python

Python3で数値文字参照をUNICODE文字に変換する方法

投稿者 : OSCA

 本稿では 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"))
文章♪
あいうえおabcde

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。
個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca