问题:
我正在使用python和cp1253编码编写一个带有希腊字符的txt文件,但程序在某些字符上抛出错误。
UnicodeEncodeError: 'charmap' codec can't encode character 'u2265' in position 389: character maps to <undefined>
问题:
我相信如果我使用包含两种语言并与Windows XP兼容的编码,则可以解决此问题。所以我的问题是:
Windows XP 如何处理双语文本?它是否使用"混合"编码?
编辑几个月后我回来了,我意识到我的问题是多么幼稚。无论如何,我几乎保持不变,我会为有相同问题的新开发人员回答它
显然,问题在于我尝试编写的文本包含未包含在编码中的字符。
为了解决这个问题,我试图用普通字符替换所有"坏"字符。 为了找到所有这些字符,我使用了以下脚本
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)
请注意,可能有更好的解决方案,尤其是在解决方案的第一部分。如果您发现改进或错误,请编辑