葡萄牙语编码

2024-09-30 12:13:37 发布

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

我有这个代码:

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

它在通过API从数据服务器解码数据集后保存.csv文件,但编码没有显示正确的字符。例如, 我试图从记事本++编码开始,在python代码中使用utf-8、latin-1、iso8859-1等进行更改,但没有效果。在


Tags: csv数据代码编码aswithopenmyfile
3条回答

作为commented by jedwards编码应为ISO 8859-1:

>>> "ã".encode('utf8').decode('iso-8859-1') 
'ã'

所以你可以尝试用这种编码来解码文本。在

我将进一步研究这一点,但有可能print在指向文件的过程中对字符串做了一些奇怪的操作。在

既然您知道datafromAPI是一个bytes对象,请考虑尝试下面两种不同的方法:

[write+文本模式]

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

[write+二进制模式]

^{pr2}$

如果您使用支持源代码编码的编辑器打开它,最后一个版本肯定可以工作。在

更新:删除了我不确定是否能正常工作的版本。

一种可能是你的文件很好,但记事本++打开它使用了错误的编码。在

注意“编码”菜单中有两组项目:

  • 用UTF-8编码将把当前数据重新解释为UTF-8。您应该看到编辑器中的文本在使用此项时发生了更改。在
  • 转换为UTF-8将把加载的数据从当前编码转换为UTF-8。在

加载文件,然后检查状态栏中的当前编码。如果未显示UTF-8,请使用“在UTF-8中编码”将其视为UTF-8。在

第二种可能是服务器错误地将iso8859-1到UTF-8的转换应用到已经编码为UTF-8的数据。在这种情况下,请修复服务器。在

相关问题 更多 >

    热门问题