python言語の文字列とバイト
1937 ワード
目次(一)文字列の本質 (二)一般的な文字符号化 (3)バイトとテキストの符号化 (四)BOM処理
メモリには復号後のテキストが常に格納され、符号化はファイル格納と中間メディア変換にのみ作用する.
ASCII(1つのByte 0-127を格納) latin-1(Byte 128-255を格納) UTF 16(2バイト格納文字) UTF 32(4バイト格納文字) UTF 8(可変バイト)
エンコーディング
bytesに変わる
bytearrayに移行
符号化フォーマットを指定しないで、システムのデフォルトはutf 8を採用します
ファイルにデータを書き込み、デフォルトの符号化フォーマットはオペレーティングシステムの符号化フォーマットです.
デコード
BOM:バイト順タグ
(一)文字列の本質
メモリには復号後のテキストが常に格納され、符号化はファイル格納と中間メディア変換にのみ作用する.
(二)一般的な文字符号化
#
ord('A')
65
#
chr(65)
'A'
(三)バイトとテキストの符号化
エンコーディング
bytesに変わる
s1 = 'ABCD'
s1.encode('ascii')
b'ABCD'
s1 = ' '
s1.encode('utf8')
b'\xe4\xb8\xad\xe5\x9b\xbd'
--------------------------------------------
#
open('data.txt','rb').read()
b'\xd6\xd0\xb9\xfa'
---------------------------------------------
bytes(' ','utf8')
b'\xe4\xb8\xad\xe5\x9b\xbd'
bytes([64,75,85])
b'@KU'
---------------------------------------------
b = b'abc'
type(b)
bytearrayに移行
s1 = ' '
ba = bytearray(s1,'utf8')
type(ba)
ba
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd')
ba.append(21)# 256
ba
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd\x15')
ba + b'abc'
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd\x15abc')
ba.decode('utf8')
' \x15'
符号化フォーマットを指定しないで、システムのデフォルトはutf 8を採用します
ファイルにデータを書き込み、デフォルトの符号化フォーマットはオペレーティングシステムの符号化フォーマットです.
デコード
b = b'\xe4\xb8\xad\xe5\x9b\xbd'
b.decode('utf8')
' '
---------------------------------------------
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd\x15abc')
ba.decode('utf8')
' \x15'
(四)BOM処理
BOM:バイト順タグ
open('data.txt','W',encoding='utf-8-sig')
open('data.txt','r',encoding='utf-8-sig')