写入Python文件“1”

2024-09-21 01:18:45 发布

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

我知道有很多关于编码/解码的问题。但这让我发疯了,我急需帮助。在

我在一个文件中读到将这些行转换为unicode

line = unicode(line,'latin-1')

然后,我做一些改变,并尝试将内容写回一个文件,对字符串进行如下编码

^{pr2}$

例如,该文件包含城市名称'Genève',它是u'Gen\xc3\xa8ve'的unicode。编码为“拉丁语-1”

gue = gu.encode('iso-8859-1')

在控制台上给我

>>> print gue
Genève

但在我的档案里,它仍然是'GenÃve'。有人能告诉我我缺少什么吗?在


Tags: 文件字符串名称内容编码lineunicodeve
1条回答
网友
1楼 · 发布于 2024-09-21 01:18:45

您正在将UTF-8数据解码为拉丁语1,请改用正确的编解码器:

>>> 'Gen\xc3\xa8ve'.decode('latin1')
u'Gen\xc3\xa8ve'
>>> print 'Gen\xc3\xa8ve'.decode('latin1')
Genève
>>> 'Gen\xc3\xa8ve'.decode('utf8')
u'Gen\xe8ve'
>>> print 'Gen\xc3\xa8ve'.decode('utf8')
Genève

è字母的正确Unicode码位是U+00E8,在Python Unicode文本中用\u00e8或{}表示,十六进制字节C3A8用UTF-8表示。错误地解释c3a8会导致两个unicode字符Ã和{},然后您将它们作为C3和A8写回文件中,因为Latin1与unicode一一对应。在

相关问题 更多 >

    热门问题