最近从redis中取出的数据有b前缀,故此特地整理一番常见的前缀,以供回顾
1、加 u
因为python3中,解释器默认编码就是Unicode,因此不需要加u,此条
仅
适
用
于
p
y
t
h
o
n
2
\color{red}{仅适用于python2}
仅适用于python2
意为字符串中数据使用unicode编码。防止因为源码储存格式问题,导致再次使用时出现乱码
python2: str -> decode -> Unicode -> encode -> str
python3: bytes -> decode -> s t r ( U n i c o d e ) \color{red}{str(Unicode)} str(Unicode) -> encode -> bytes
后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,
2、加 r
忽视字符串中的“特殊字符”,将其识别为一般字符。俗称去掉反斜杠的转义机制。常用于re模块
(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。 )
print("你\n好") #你
#好
print(r"你\n好") #你\n好
3、加 b
’ b’ 表示这是一个 bytes 对象,指明后面字符串是bytes 类型。
网络编程中,服务器和浏览器只认bytes 类型数据。
如:send 函数的参数和 recv 函数的返回值都是 bytes 类型
print(b"\xe4\xbd\xa0\xe5\xa5\xbd") # b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b"\xe4\xbd\xa0\xe5\xa5\xbd".decode("utf8")') # '你好'
注:
在 Python3 中,bytes 和 str 的互相转换方式是
str.encode(‘utf-8’)
bytes.decode(‘utf-8’) 或 str(bytes,“utf8”)