Unicode文字列
1555 ワード
Unicode文字列
文字列にはもう一つの符号化問題があります.
コンピュータは数字しか処理できないので、テキストを処理するには、まずテキストを数字に変換してから処理しなければなりません.最初のコンピュータは設計時に8ビット(bit)を1バイト(byte)として採用したので、1バイトで表すことができる最大の整数は255(バイナリ11111=10進255)であり、0-255は大文字と小文字の英字、数字、いくつかの記号を表すために使用され、この符号表はASCII符号化と呼ばれ、例えば大文字Aの符号化は65、小文字zの符号化は122である.
中国語を表すには、明らかに1バイトでは足りず、少なくとも2バイトが必要であり、ASCII符号化と衝突することはできないため、中国はGB 2312符号化を制定し、中国語を編入するために使用している.
似たように、日本語や韓国語など他の言語でもこの問題があります.すべての文字の符号化を統一するために、Unicodeが誕生した.Unicodeはすべての言語を1つのコードに統一し、文字化けの問題はなくなります.
Unicodeは通常2バイトで1文字を表し、元の英語の符号化は単バイトから二バイトになり、高バイトをすべて0に記入するだけでよい.
Pythonの誕生はUnicode規格よりも早いため、最初のPythonはASCII符号化のみをサポートし、通常の文字列「ABC」はPython内部でASCII符号化されている.
Pythonは後にUnicodeのサポートを追加し、Unicodeで表される文字列はu'...'たとえば、次のように表示されます.
print u' '
注意:uを入れないと、中国語が正常に表示されません.
Unicode文字列は
u
が1つ増えた以外は、通常の文字列と変わらず、エスケープ文字とマルチライン表現は依然として有効です.エスケープ:
u'
'
複数行:
u'''
'''
raw+複数行:
ur'''Python Unicode " ",
" ",
" " '''
中国語文字列がPython環境でUnicodeDecodeErrorに遭遇した場合、これは.pyファイルの保存フォーマットに問題があります.最初の行にコメントを追加できます
# -*- coding: utf-8 -*-
Pythonインタプリタに、ソースコードをUTF-8コードで読み込むように伝えるのが目的です.そしてNotepad++で名前を付けて保存...UTF-8形式で保存を選択します.