Python 写入文件时出现 UnicodeEncodeError

标签 python file unicode pdfminer

我正在使用“pdfminer.six”(一个 Python 库)从我拥有的几个 PDF 中提取所有文本。我的方法工作完美,但对于某些 pdf,可能有一些特殊字符,当我将其写入文本文件时,我收到“Unicode 编码错误:'charmap' 编解码器无法编码字符 '\u03b2'在位置 271130:字符映射到“. 现在,我知道“正在”发生什么,但我想知道如何最好地对待它。这是让我头疼的部分:

    with open("newTxtFile.txt", "w") as textFile:
        textFile.write(text)

由于我来自巴西并且文本是葡萄牙语,因此我想保留所有重音符号,因此我在 pdfminer 中使用“codec = 'latin-1'”。据我检查,保存前打印一直到最后都完美无缺,但每当我尝试保存到文件时,都会收到 UnicodeEncodeError。

我想到的两个选择是: 要么我找到一种方法来仅捕获给我带来麻烦的特定字符:

    with open("newTxtFile.txt", "w") as textFile:
    try:
        textFile.write(text)
    except UnicodeEncodeError:
        ????

但我不知道 except 中应该包含什么?

或者我应该以不同的方式保存到文件中。

谁能给我一些建议吗?非常感谢!

最佳答案

尝试:

with open("newTxtFile.txt", "wb") as textFile:
    textFile.write(text.encode('utf8'))

阅读它:

with open("newTxtFile.txt", "rb") as textFile:
    text = textFile.read().decode('utf8')

关于Python 写入文件时出现 UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47092780/

相关文章:

file - 使用 COBOL 将 Unicode 字符串写入文件

java - 在 Eclipse 中如何添加要读取的文件?

java - 用JAVA将表情符号写入XML文件

Python - 数字文字表达式

c# - 如何从 C# 向 Python 脚本发送数据

java - Python 的未签名 CRC 32 与 Java 的 CRC 32 相匹配?

Python 2.7 匹配 CSV 文件行中的精确字符串

java - 如何使用文件 channel 作为参数来写入对象

python-2.7 - 如何在python中列出包含特定模式文件的文件夹/目录?

postgresql - 我如何从 PostgreSQL 中的 VARCHAR 获取 Unicode 值?