【问题标题】:Python - fix Persian text file saved with wrong encodingPython - 修复以错误编码保存的波斯文本文件
【发布时间】:2021-08-14 18:09:03
【问题描述】:

有很多以错误编码保存的波斯语字幕。视频播放器中有一些选项可以正确修复和显示此文件,但只有一个 Windows 软件可以实际修复文件并以正确的编码保存它。我想在python中做到这一点。我已经尝试了很多事情,但无法完成这项工作。记事本说文件是 ANSI 格式,所以我在 python 中将它打开为“Latin-1”并尝试将其解码和编码为 UTF-8,但它给了我原始文件。文件可以从https://ufile.io/np0rodjg下载
也可以从https://ufile.io/ignop48m下载带有上述软件的固定文件
如何使用python来完成?

【问题讨论】:

  • 请不要使用一些未知的第三方文件上传器。使用 github 或 Pastbin 或类似的众所周知的东西。
  • 这是我第一次尝试上传和包含文件,所以我不知道应该使用哪个上传器。谢谢。

标签: python encoding farsi


【解决方案1】:

该文件可能以 cp1256 编码,即 Windows-1256,即 Windows 中用于波斯语和乌尔都语的代码页。要创建文件的 UTF-8 版本,您只需在此代码页中读取它并用 UTf-8 写出:

with open("source.srt", "rt", encoding="cp1256") as f:
    data = f.read()

with open("fixed.srt", "wt", encoding="utf_8_sig") as f:
    f.write(data)

【讨论】:

  • 我尝试 cp1256 不是作为编码参数,而是在 decode() 函数中调用文件读取为“rb”。您的解决方案解决了问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
  • 2020-01-12
  • 2010-09-18
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多