[英]python encoding problem when writing to rtf
我正在使用python3并使用python写入rtf文件,但是在使用charø(也称为“ \\ u00f8”)时会出现一些编码问题。 这是代码:
>>> myText = "a \u00f8 b"
>>> myText
'a ø b'
>>> out_file = open('test.rtf', 'w', encoding='utf8')
>>> textForFile = "{\\rtf1\\utf8 " + myText + "}"
>>> out_file.write(textForFile)
18
>>> out_file.close()
文件test.rtf现在包含以下文本:
a ˆ‚ b
代替:
'a ø b'
知道我在编码中缺少什么吗?
解决此问题的关键是使用cp1252对python文件进行编码,并在rtf代码中使用ansicpg1252。 我在本文档中找到了ansicpg1252的想法。 现在,TextEdit,LibreOffice和OpenOffice都可以正确打开文件。
正确的代码:
>>> myText = "a \u00f8 b"
>>> myText
'a ø b'
>>> out_file = open('test.rtf', 'w', encoding='cp1252')
>>> textForFile = "{\\rtf1\\ansicpg1252" + myText + "}"
>>> out_file.write(textForFile)
>>> out_file.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.