Pythonで数値をUnicode文字列に変換する方法

今回はPythonで数値をUnicode文字列に変換する方法についてご紹介いたします。



Pythonで数値をUnicode文字列に変換する方法

ややこしくてハマったので備忘録として残しておきます。

一言で「Pythonで数値をUnicode文字列に変換したい」と言っても、次の二つの意味がとれます。
・数値をそのまま文字列としてUnicode文字列にしたい(例:int型の100をu’100’にしたい)
・数値をASCIIコードに変換した文字列をUnicode文字列として表現したい(例:int型の100をu’d’にしたい)

よって、上記の二つのパターンに分けて説明いたします。
ネットでは上記二つのやり方が混合されて説明されているサイトが多くて分かりにくかったです。

数値をそのまま文字列としてUnicode文字列にしたい

まずは数値をそのまま文字列としてUnicode文字列にしたいパターンです。
例として、int型の100をu’100’にしたい場合ですね。

こちらは下記のように一旦int型をString型に変換し、UTF-8でdecodeすれば数値をUnicode文字列に変換することができます。
例:str(100).decode('utf-8')

以下、Pythonの対話型シェルで実行した結果です。

数値をASCIIコードに変換した文字列をUnicode文字列として表現したい

続いて数値をASCIIコードに変換した文字列をUnicode文字列と表現したい場合です。
例として、int型の100をASCIIコードに変換したu’d’としたいパターンですね。

こちらはPython2ではunichrという関数を使えば一発で変換することができます。
例:unichr(100)

Python3ではunichrではなくchrを使います。
例:chr(100)

終わりに

今回はPythonで数値をUnicode文字列に変換する方法についてお伝えいたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Python

Posted by ちこ