python chardet 无法正确检测 utf-8
python chardet can not detect utf-8 correctly
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import chardet
s = '123'.encode('utf-8')
print(s)
print(chardet.detect(s))
ss ='编程'.encode('utf-8')
print(chardet.detect(ss))
和结果
b'123'
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
为什么它无法将 s
检测为 UTF-8?
为什么是 ASCII?
这条线没用吗? # -*- coding: utf-8 -*-
Python新人,谢谢!
我们就说这些台词吧——所有的肉都在那里:
s = '123'.encode('utf-8')
print(s)
你说得对 Python 3 默认使用 Unicode。当您说 '123'.encode()
时,您正在将 Unicode 字符串转换为字节序列,然后将使用丑陋的 b
前缀打印,以提醒您它不是默认类型的字符串。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import chardet
s = '123'.encode('utf-8')
print(s)
print(chardet.detect(s))
ss ='编程'.encode('utf-8')
print(chardet.detect(ss))
和结果
b'123'
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
为什么它无法将 s
检测为 UTF-8?
为什么是 ASCII?
这条线没用吗? # -*- coding: utf-8 -*-
Python新人,谢谢!
我们就说这些台词吧——所有的肉都在那里:
s = '123'.encode('utf-8')
print(s)
你说得对 Python 3 默认使用 Unicode。当您说 '123'.encode()
时,您正在将 Unicode 字符串转换为字节序列,然后将使用丑陋的 b
前缀打印,以提醒您它不是默认类型的字符串。