葡萄牙语编码 ã, ê, ç, á

我有这个代码:

with open('dataset.csv', "w", encoding="utf-8") as myfile:
    print(datafromAPI.decode("utf-8"),file=myfile)

通过 API 从数据服务器解码数据集后保存 .csv 文件,但编码未显示正确的字符。例如,ã 显示 ã,ê 显示 ê,ç 显示 ç,á 显示 á等我尝试从记事本++的编码开始更改,并在我的 python 代码中使用utf-8、latin-1、ISO 8859- 1等,没有影响。


BIG阳
浏览 848回答 3
3回答

森林海

我将不得不进一步研究这个问题,但是print在发送到文件的过程中可能对您的字符串做了一些奇怪的事情。既然您知道datafromAPI是一个bytes对象,请考虑尝试以下三种两种不同的方法:[ write+文本模式]with open('dataset.csv', "w", encoding="utf-8") as myfile:    myfile.write(datafromAPI.decode("utf-8"))[ write+二进制模式]with open('dataset.csv', "wb") as myfile:    myfile.write(datafromAPI)如果您使用支持源编码的编辑器打开它,最后一个版本肯定会起作用。更新: 删除了我不确定是否会工作的版本——它不会。

慕仙森

正如jedwards所评论的,编码应该是 ISO 8859-1:>>> "ã".encode('utf8').decode('iso-8859-1')  'ã'所以你可能想尝试用这种编码解码文本。

慕田峪4524236

一种可能是您的文件没问题,但 Notepad++ 使用错误的编码打开它。请注意,编码菜单中有两组项目:以 UTF-8 编码会将当前数据重新解释为 UTF-8。当您使用此项目时,您应该会看到编辑器中的文本发生变化。转换为 UTF-8会将加载的数据从当前编码转换为 UTF-8。加载文件,然后在状态栏中检查当前编码。如果不显示 UTF-8,请使用“以 UTF-8 编码”将其视为 UTF-8。第二种可能性是服务器错误地将 ISO 8859-1 到 UTF-8 转换应用于已编码为 UTF-8 的数据。在这种情况下,修复服务器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python