我尝试使用以下代码在python 2.7中读取docx文件:
import docx
document = docx.Document('sim_dir_administrativo.docx')
docText = '\n\n'.join([
paragraph.text.encode('utf-8') for paragraph in document.paragraphs])
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用此代码解码文件中的字符串,因为我有一些特殊字符(例如ã):
print docText.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
但是,我收到了这个错误:
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2013' in position
494457: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
打印功能只能打印本地编码的字符.你可以找出它是什么sys.stdout.encoding.要使用特殊字符进行打印,必须先对本地编码进行编码.
# -*- coding: utf-8 -*-
import sys
print sys.stdout.encoding
print u"Stöcker".encode(sys.stdout.encoding, errors='replace')
print u"????????".encode(sys.stdout.encoding, errors='replace')
Run Code Online (Sandbox Code Playgroud)
此代码段取自此stackoverflow响应.
| 归档时间: |
|
| 查看次数: |
9269 次 |
| 最近记录: |