1. ホーム
  2. パイソン

[解決済み】Pythonで文字列をutf-8に変換する方法

2022-04-06 13:10:29

質問

Pythonサーバーにutf-8文字を送るブラウザがあるのですが、クエリ文字列から取得すると、Pythonが返すエンコーディングはASCIIになってしまいます。どうすればプレーンな文字列をutf-8に変換できるのでしょうか?

注:ウェブから渡された文字列はすでにUTF-8にエンコードされています。私はただPythonがそれをASCIIではなくUTF-8として扱うようにしたいだけです。

どのように解決するのですか?

Python 2の場合

>>> plain_string = "Hi!"
>>> unicode_string = u"Hi!"
>>> type(plain_string), type(unicode_string)
(<type 'str'>, <type 'unicode'>)

^ これがバイト文字列(plain_string)とユニコード文字列の違いです。

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")

^ ユニコードに変換してエンコーディングを指定する。

Python 3 の場合

文字列はすべてUnicodeです。そのため unicode 関数はもう存在しません。Noumenonさんの回答を見る