【问题标题】:Windows XP encoding for non-english and english characters非英文和英文字符的 Windows XP 编码
【发布时间】:2020-09-26 08:30:07
【问题描述】:

问题:

我正在编写一个带有希腊字符的 txt 文件,使用 python 和 cp1253 编码,但程序在某些字符处抛出错误。

UnicodeEncodeError: 'charmap' codec can't encode character '\u2265' in position 389: character maps to <undefined>

问题:

我相信如果我使用包含两种语言并与 Windows XP 兼容的编码,这个问题可以解决。所以我的问题是:

Windows XP 如何处理双语文本?它是否使用“混合”编码?


编辑 几个月后我回来了,我意识到我的问题是多么天真。无论如何,我几乎保持不变,我会为有同样问题的新开发人员回答它

【问题讨论】:

    标签: python encoding windows-xp


    【解决方案1】:

    问题显然是我试图编写的文本包含未包含在编码中的字符。

    为了解决这个问题,我尝试将所有“坏”字符替换为正常字符。 为了找到所有这些字符,我使用了以下脚本

    bad_chars = []
    with open(name, 'w', encoding = 'cp1253') as res:
        for i in range(len(whole_text)):
            try:
                res.write(whole_text[i])
            except:
                bad_chars.append(whole_text[i])
    

    然后我用正确的字符创建了一个字典,并在文本中替换了它们。

    chars_to_change = {'∆':'Δ', 'Ω':'Ω', '₂':'2'}
    for c1, c2 in chars_to_change.items():
        whole_text = whole_text.replace(c1, c2)
    

    请注意,可能会有更好的解决方案,尤其是在解决方案的第一部分。如果您发现改进或错误,请编辑

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多