Python|Unicodeコードポイントと文字を変換

1. はじめに

Pythonで文字や記号を扱う際に欠かせないのが「Unicodeコードポイントと文字の変換」です。
本記事では、Python初心者〜中級者向けに、chr()ord() を活用して、Unicodeコードポイントと文字を相互変換する方法をわかりやすく解説します。

例えば、「A」という文字が数値でどのように表現されているか、逆に数値からどの文字になるかを理解することで、文字列処理やファイル操作、データ分析の場面でも役立ちます。

 

2. PythonでのUnicodeコードポイントと文字の基本

2-1. ord()関数:文字からコードポイントを取得

ord()関数は、文字(1文字)をUnicodeコードポイント(整数)に変換します。

# 'A' のコードポイントを取得
code_point = ord('A')
print(code_point)

実行結果:

65

この例では、文字「A」に対応するUnicodeコードポイントが「65」であることがわかります。

2-2. chr()関数:コードポイントから文字を取得

逆に、chr()関数は、整数(コードポイント)を文字に変換します。

# コードポイント 65 に対応する文字を取得
char = chr(65)
print(char)

実行結果:

A

このように、Unicodeコードポイントと文字の変換はとてもシンプルです。

 

3. よくある使い方・応用例

3-1. アルファベットの一覧を生成

chr()ord()を組み合わせれば、アルファベットの一覧を動的に作成できます。

# A〜Zまでのアルファベットを出力
for i in range(ord('A'), ord('Z') + 1):
    print(chr(i), end=' ')

実行結果:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

このように、コードポイントの範囲を使って文字の一覧を簡単に出力できます。

3-2. 絵文字や日本語文字のコードポイントを調べる

絵文字や日本語の文字でもord()を使えば、そのコードポイントを取得可能です。

# 絵文字と日本語のコードポイントを表示
print(ord('🍣'))  # 寿司の絵文字
print(ord('日'))   # 日本の「日」

実行結果:

127843
26085

Unicodeは世界中の文字や記号、絵文字を含むため、国際化されたアプリケーションでも便利です。

3-3. バイナリ変換やファイル処理との組み合わせ

Unicodeコードポイントの理解は、エンコーディング処理encode()/decode()の活用にもつながります。

# 文字列をUTF-8エンコードしてバイト列に変換
s = '漢'
encoded = s.encode('utf-8')
print(encoded)

# バイト列から元の文字を復元
decoded = encoded.decode('utf-8')
print(decoded)

実行結果:

b'\xe6\xbc\xa2'
漢

このように、Unicodeを扱う知識はPythonでのファイルI/OやWebスクレイピングなど多くの分野で役立ちます。

 

4. 注意点・エラー対策

4-1. ord()は1文字限定

ord()関数に複数文字の文字列を渡すと、TypeErrorが発生します。

# 複数文字を渡すとエラーになる
print(ord("AB"))  # エラー

実行結果:

TypeError: ord() expected a character, but string of length 2 found

この場合は、ord("AB"[0])のように1文字ずつ処理しましょう。

4-2. 範囲外のコードポイントに注意

chr()関数に不正な数値を渡すとValueErrorになります(例:負の値など)。

# 無効なコードポイント
print(chr(-1))  # エラー

実行結果:

ValueError: chr() arg not in range(0x110000)

正しい範囲(0〜1,114,111)内の値を使うようにしましょう。

 

5. まとめ

本記事では、Pythonでの「Unicodeコードポイントと文字の変換」について解説しました。
主に使用する関数は次の2つです:

  • ord():文字 → コードポイント
  • chr():コードポイント → 文字

これらの関数は、文字列処理・辞書順のソート・ファイル操作・国際対応など、実務でも活用されます。

学習のコツ: 手を動かしながら試すことで、「数値と文字の関係」が自然に理解できます。特に英字や記号、日本語・絵文字のコードを調べてみると面白い発見があります。

今後はこの知識をベースに、エンコードや文字列操作、正規表現などさらに幅広い処理へ応用していきましょう!

タイトルとURLをコピーしました