python读取rtf文件_使用Python读取RTF文件时出现欧元符号问题
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文件时出现欧元符号问题相关推荐
- java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...
- python读取rtf文件_【Python】【IO】文件读写
一.打开的文件在使用完后要关闭 >>>f=file('fibs.py') #用''表示文件名 #无''表示变量名 >>>f.read() #打印fibs.py中的内 ...
- python怎么读取word文件_使用python编辑和读取word文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx importDo ...
- python用os.system打开wav文件_使用python读取wav格式文件
** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...
- c++读取utf8文件_【Python】File文件对象
open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...
- python读取raw数据文件_在python下读取并展示raw格式的图片实例
raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...
- python入门文件读取与写入_初学者Python:读取和写入同一文件
每个打开的文件都有一个隐式指针,该指针指示将在何处读取和写入数据.通常,它默认为文件的开头,但是如果您使用a(追加)模式,则默认为文件的结尾.还值得注意的是,w即使您添加+到该模式,该模式也会截断您的 ...
- python读取raw图片文件_在python下读取并展示raw格式的图片实例
raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...
- 怎么用python打开csv文件_使用Python从CSV文件读取数据
CSV文件,也就是Comma-separated Value文件,用sublime打开是这样(数据下载见文末): 如果用excel打开是这样(千万别点保存,保存就有问题): 来看看怎么打开,如果安装了 ...
- abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)
利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...
最新文章
- OpenCV 错误:无法打开摄像头(打开摄像头卡机)
- iMeta | 中科院生态中心邓晔组发布微生物组网络分析平台iNAP(图文/视频教程)
- Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
- deltasql 1.6.0 发布,数据库模型版本控制
- ML之HMM:HMM算法相关论文、关键步骤、测试代码配图集合
- 算法工程师_浅谈算法工程师的职业定位与发展
- 关于 Node.js scoped module 的一些理解
- oracle 长事务 逻辑日志,goldengate中长事务引起的问题
- Cannot find module '@babel/plugin-proposal-class-properties'
- devise修改密码
- VS2010 编译 openssl 源代码(输出 libeay32 and ssleay32 静态库和动态库)
- delphi xe 连接mysql_delphixe7支持MYSQL连接的方式
- NekoHTML学习笔记
- VGG19-图像风格迁移
- 短视频技术与市场动态
- 晶体管扩流电源电路设计
- Linux系统Ubuntu安装kvaser Leaf Light V2驱动
- c语言程序设计教程2014版,C语言程序设计案例教程(第3版)
- Laravel—Purifier扩展包防止XSS攻击
- FFMPEG:SPS和PPS
热门文章
- Python爬取2万条相亲网站数据!看看中国单身男女都在挑什么!
- 支付分订单接口如果用户卡余额不足如何处理
- Rancher 官方在线培训-教学视频链接及内容目录
- altium如何制作mark点_PCB设计添加工艺边与MARK点的方法
- Java使用HttpClient发送Https请求证书失效:PKIX path building failed:
- 模拟战役题解(dfs,联通块,贪心)
- osgEarth地形透明案例 6. fade_elevation.earth
- pdxp协议 C语言,集成CC控制逻辑,PD协议及MCU的Type-C应用方案
- EasyExcel使用、合并
- HandyControl应用之本地图片查看器