繁体   English   中英

写入rtf时的python编码问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM