Python文字コードまとめ
最近プロジェクトをしているときにpythonのコーディングの問題に遭遇したことがありますが、ここでまとめます.
1.まずpythonファイルでascii以外の特殊文字を使用する必要がある場合は、#coding:utf 8などを明記する必要があります.中間に他の文字を追加することもできますが、python自体は#とcodingおよび符号化文字列のみを検出します.この文を宣言した後、pythonファイルで使用する特殊な文字はデフォルトでこのように符号化されます.符号化文字列は大文字と小文字が区別されないので、utf 8とUTF 8、Utf-8は区別されません.
2.pythonのデフォルトの符号化フォーマットはUnicodeで、ある文字を別の文字に変換するには直接変換することはできませんが、decode関数を使用して特殊な符号化をUnicodeに変換し、GBKをutf 8に変換するなど、Unicodeを別の文字に変換する必要があります.
3.文字列をUnicodeに復号すると、特定の文字が変換できない場合があります.この場合、decodeにパラメータ「ignore」を追加することができます.このパラメータの変換を無視することを意味します.
4.デフォルトでstring処理をする場合、pythonはデフォルトで文字列をUnicode形式に変換するので、3の指す問題に遭遇することがあります.特殊文字は変換できないものもありますが、後で元の符号化フォーマットの文字を使い続けたい場合はどうすればいいですか?手動でUnicodeに変換し、encodeを元のフォーマットに変換するとpythonがデフォルトでUnicodeに変換する処理をしても間違いはありません.
5.1つの文字列に2つの符号化文字が含まれている場合は、予想外のバグが発生しないように4で使用する方法で変換することが望ましい.
1.まずpythonファイルでascii以外の特殊文字を使用する必要がある場合は、#coding:utf 8などを明記する必要があります.中間に他の文字を追加することもできますが、python自体は#とcodingおよび符号化文字列のみを検出します.この文を宣言した後、pythonファイルで使用する特殊な文字はデフォルトでこのように符号化されます.符号化文字列は大文字と小文字が区別されないので、utf 8とUTF 8、Utf-8は区別されません.
#coding: UTF-8
2.pythonのデフォルトの符号化フォーマットはUnicodeで、ある文字を別の文字に変換するには直接変換することはできませんが、decode関数を使用して特殊な符号化をUnicodeに変換し、GBKをutf 8に変換するなど、Unicodeを別の文字に変換する必要があります.
str.decode('gbk').encode('utf-8')
3.文字列をUnicodeに復号すると、特定の文字が変換できない場合があります.この場合、decodeにパラメータ「ignore」を追加することができます.このパラメータの変換を無視することを意味します.
str.decode('gbk', 'ignore').encode('utf-8')
4.デフォルトでstring処理をする場合、pythonはデフォルトで文字列をUnicode形式に変換するので、3の指す問題に遭遇することがあります.特殊文字は変換できないものもありますが、後で元の符号化フォーマットの文字を使い続けたい場合はどうすればいいですか?手動でUnicodeに変換し、encodeを元のフォーマットに変換するとpythonがデフォルトでUnicodeに変換する処理をしても間違いはありません.
str.decode('utf-8','ignore').encode('uft-8')
5.1つの文字列に2つの符号化文字が含まれている場合は、予想外のバグが発生しないように4で使用する方法で変換することが望ましい.