我访问了一个网站,其中文本中包含一个字符
ø
。 Unicode 代码点为 248(十六进制为 0xf8)的字符。事实上,Python 控制台证实了这一点:
>>> chr(248)
'ø'
但是自从我理解了文本,我知道该字符已使用错误的编码进行编码。应该是
ř
。事实上,Windows-1250 代码点表 确认值 0xf8 等于字符 ř
。
我应该应用什么转换来修复文本编码?将
ø
转换为 ř
?
我无法弄清楚功能的正确顺序。我很无脑地尝试了两种方法:
>>> chr(248).encode().decode('windows-1250')
'ø'
和
>>> chr(248).encode('windows-1250').decode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/encodings/cp1250.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\xf8' in position 0: character maps to <undefined>
但是,正如你所看到的,这些都不起作用。
尝试
chr(248).encode('raw_unicode_escape').decode('windows-1250')