python中的str对象其实就是"8-bit string" ,字节字符串
,
由unicode经过编码(encode)后的字节组成的
, 本质上类似java中的byte[]。 而python中的unicode对象应该才是等同于java中的String对象
,或本质上是java的char[]。 Python内部的字符串一般都是 Unicode编码,代码中字符串的默认编码与代码文件本身的编码是一致的。 所以要做一些编码转换通常是要以Unicode作为中间编码进行转换的, 即先将其他编码的字符串解码(decode)成 Unicode,再从 Unicode编码(encode)成另一种编码。 str.decode()----> unicode对象 unicode.encode()------> str对象 中文编码(默认市asci) 在汉
字
前加个u(u’汉字‘--->它实则为unicode对象),这个u表示将后面跟的字符串以unicode格式存储,
如果不加u
,python会根据代码第一行标称的(# -*- coding: utf-8 -*- )编码识别代码中的汉字,然后转换成unicode对象内部处理使用。
Str =
'\u597d\u597d'
Str.decode('unicode_escape') 能将字符串解码为unicode字符串
from chardet import detectdetect('文本') #探测编码 Unicode :\u0000
二进制编码:
\x00\x00
,utf-8
,cp936
都是二进制编码
# Unicode转化为二进制编码中的一种:utf8unicodeStr . encode ( 'utf8' )# 二进制编码根据自己的编码种类转化为Unicodeutf8Str . decode ( 'utf8' )
# 字符串中混进了\x00String = 'Utf-8字\x00符串'print ( repr ( String . decode ( 'utf8' , 'replace' ) ) )
print ( repr ( String . decode ( 'utf8' , 'ignore' ) ) )
python中编码
最新推荐文章于 2022-12-09 14:44:40 发布