\u, \x,0x区别

\u 字符串

import json

# 编码为json字符串
json_str = json.dumps(“你好”)  # "\\u4f60\\u597d"
print(json_str)  # '\u4f60\u597d'

# 解码为python对象
data = json.loads(json_str) # “你好”
print(data) # 你好

s = '\u4f60\u597d'
repr(s) # "你好"
str(s)  # 你好
print(s)  # 你好

\x字符串

s = '你好'.encode('utf-8') # b'\xe4\xbd\xa0\xe5\xa5\xbd'
s1 = '你好'.encode('gbk') # b'\xc4\xe3\xba\xc3'

s.decode('utf-8') # ‘ 你好’
s1.decode('gbk')  # '你好'

检测类型

pip install chardet

import chardet
s = '你好'.encode()
print(chardet.detect(s)) # {'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}

s = b'\u4f60\u597d'
print(chardet.detect(s))  #{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}

s =  b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(chardet.detect(s)) # {'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}

s = b'\xc4\xe3\xba\xc3'
print(chardet.detect(s)) # {'encoding': 'TIS-620', 'confidence': 0.3598212120361634, 'language': 'Thai'}

0x\x区别:

- 0x 表示整型数值(十六进制)。
	 0x41 = 65  
	 0o41 = 33 
	 0b101 = 5
-'\x' 表示字符串表达(带引号)
	'\x41' 表示 'A'
	'\x42' 表示 'B'
- \ 表示转义

\x 后边跟两位,表示单字节编码。
\d 十进制编码
\o 8进制编码

\u 1
chr
str
ord

【注】 Python2 的unicode 函数在 Python3 中被命名为 str。在 Python3 中使用 ·str 来代替 Python2 中的 unicode。

\u 代表 unicode 编码,是一个字符
\x 代表 UTF-8 编码的数据,可以转换为 Unicode 编码,得到对应的汉字,

你可能感兴趣的:(python,python)