RTF标准使用UTF-16,但其形状适合RTF命令序列格式。记录在http://en.wikipedia.org/wiki/Rich_Text_Format#Character_encoding。不幸的是,pyRTF不为您进行任何编码;处理这一点已经在项目的TODO中完成了,但是很明显,他们在放弃库之前从来没有做到这一点。在

这是基于我最近在一个项目中使用的代码。我现在将其发布为^{} on PyPI,支持Python2和3;Python2版本:import codecs

import re

_charescape = re.compile(u'([\x00-\x1f\\\\{}\x80-\uffff])')

def _replace(match):

codepoint = ord(match.group(1))

# Convert codepoint into a signed integer, insert into escape sequence

return '\\u%s?' % (codepoint if codepoint < 32768 else codepoint - 65536)

def rtfunicode_encode(text, errors):

# Encode to RTF \uDDDDD? signed 16 integers and replacement char

return _charescape.sub(_replace, escaped).encode('ascii')

class Codec(codecs.Codec):

def encode(self, input, errors='strict'):

return rtfunicode_encode(input, errors), len(input)

class IncrementalEncoder(codecs.IncrementalEncoder):

def encode(self, input, final=False):

return rtfunicode_encode(input, self.errors)

class StreamWriter(Codec, codecs.StreamWriter):

pass

def rtfunicode(name):

if name == 'rtfunicode':

return codecs.CodecInfo(

name='rtfunicode',

encode=Codec().encode,

decode=Codec().decode,

incrementalencoder=IncrementalEncoder,

streamwriter=StreamWriter,

)

codecs.register(rtfunicode)

而不是编码为“iso-8859-15”,您可以编码为“rtfunicode”:

^{pr2}$

以这种方式对插入到RTF文档中的任何文本进行编码。在

注意,它只支持UCS-2unicode(\uxxxx,2个字节),不支持UCS-4(\Uxxxxxxxx,4个字节);rtfunicode1.1只支持将UTF-16代理项对编码为两个\uDDDDD?有符号整数。在

python读取rtf文件_使用Python读取RTF文件时出现欧元符号问题相关推荐

  1. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  2. python读取rtf文件_【Python】【IO】文件读写

    一.打开的文件在使用完后要关闭 >>>f=file('fibs.py') #用''表示文件名 #无''表示变量名 >>>f.read() #打印fibs.py中的内 ...

  3. python怎么读取word文件_使用python编辑和读取word文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx importDo ...

  4. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  5. c++读取utf8文件_【Python】File文件对象

    open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  6. python读取raw数据文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  7. python入门文件读取与写入_初学者Python:读取和写入同一文件

    每个打开的文件都有一个隐式指针,该指针指示将在何处读取和写入数据.通常,它默认为文件的开头,但是如果您使用a(追加)模式,则默认为文件的结尾.还值得注意的是,w即使您添加+到该模式,该模式也会截断您的 ...

  8. python读取raw图片文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  9. 怎么用python打开csv文件_使用Python从CSV文件读取数据

    CSV文件,也就是Comma-separated Value文件,用sublime打开是这样(数据下载见文末): 如果用excel打开是这样(千万别点保存,保存就有问题): 来看看怎么打开,如果安装了 ...

  10. abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)

    利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...

最新文章

  1. OpenCV 错误:无法打开摄像头(打开摄像头卡机)
  2. iMeta | 中科院生态中心邓晔组发布微生物组网络分析平台iNAP(图文/视频教程)
  3. Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
  4. deltasql 1.6.0 发布,数据库模型版本控制
  5. ML之HMM:HMM算法相关论文、关键步骤、测试代码配图集合
  6. 算法工程师_浅谈算法工程师的职业定位与发展
  7. 关于 Node.js scoped module 的一些理解
  8. oracle 长事务 逻辑日志,goldengate中长事务引起的问题
  9. Cannot find module '@babel/plugin-proposal-class-properties'
  10. devise修改密码
  11. VS2010 编译 openssl 源代码(输出 libeay32 and ssleay32 静态库和动态库)
  12. delphi xe 连接mysql_delphixe7支持MYSQL连接的方式
  13. NekoHTML学习笔记
  14. VGG19-图像风格迁移
  15. 短视频技术与市场动态
  16. 晶体管扩流电源电路设计
  17. Linux系统Ubuntu安装kvaser Leaf Light V2驱动
  18. c语言程序设计教程2014版,C语言程序设计案例教程(第3版)
  19. Laravel—Purifier扩展包防止XSS攻击
  20. FFMPEG:SPS和PPS

热门文章

  1. Python爬取2万条相亲网站数据!看看中国单身男女都在挑什么!
  2. 支付分订单接口如果用户卡余额不足如何处理
  3. Rancher 官方在线培训-教学视频链接及内容目录
  4. altium如何制作mark点_PCB设计添加工艺边与MARK点的方法
  5. Java使用HttpClient发送Https请求证书失效:PKIX path building failed:
  6. 模拟战役题解(dfs,联通块,贪心)
  7. osgEarth地形透明案例 6. fade_elevation.earth
  8. pdxp协议 C语言,集成CC控制逻辑,PD协议及MCU的Type-C应用方案
  9. EasyExcel使用、合并
  10. HandyControl应用之本地图片查看器