UnicodeDecodeError:“ascii”编码解码器无法解码

2024-10-01 11:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用file.readline()读取一个在Python中包含罗马尼亚语单词的文件。 因为编码,我有很多字符的问题。

示例:

>>> a = "aberație"  #type 'str'
>>> a -> 'abera\xc8\x9bie'
>>> print sys.stdin.encoding
UTF-8

我试过用utf-8、cp500等编码,但没用。

我找不到我必须使用的正确字符编码?

提前谢谢。

编辑:目的是将文件中的单词存储在一个词典中,并且在打印时获得aberație而不是'abera\xc8\x9bie'


Tags: 文件示例编码readlinetypesys字符单词
1条回答
网友
1楼 · 发布于 2024-10-01 11:25:29

你想干什么?

这是一组字节:

BYTES = 'abera\xc8\x9bie'

它是一组字节,表示字符串“aberație”的utf-8编码。对字节进行解码以获得unicode字符串:

>>> BYTES 
'abera\xc8\x9bie'
>>> print BYTES 
aberație
>>> abberation = BYTES.decode('utf-8')
>>> abberation 
u'abera\u021bie'
>>> print abberation 
aberație

如果要将unicode字符串存储到文件中,则必须将其编码为您选择的特定字节格式:

>>> abberation.encode('utf-8')
'abera\xc8\x9bie'
>>> abberation.encode('utf-16')
'\xff\xfea\x00b\x00e\x00r\x00a\x00\x1b\x02i\x00e\x00'

相关问题 更多 >