FPDF 编码在 Python 中不工作

FPDF encoding on writing not working in Python

我正在尝试使用 Python 和 FPDF 创建 PDF 文件。我已经阅读了有关 unicode 的项目页面,并尝试按照他们的说明进行操作,但每次我 运行 我的程序时,我都会收到错误消息:

File "eventsmanager.py", line 8 SyntaxError: Non-ASCII character '\xc3' in file eventsmanager.py on line 8, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

这是我的程序:

from fpdf import FPDF

pdf = FPDF()
pdf.add_page()

pdf.add_font('gargi', '', 'gargi.ttf', uni=True) 
pdf.set_font('gargi', '', 14)
pdf.write(8, 'Olá!!')
pdf.ln(20)

pdf.output('tuto3.pdf', 'F')

你能帮我理解我做错了什么吗?

您需要声明文件编码为UTF8,因为Python 2 默认为Latin-1。 UTF8 在 Python 中成为默认值 3. 链接的 PEP 包含您必须在文件开头添加的所需行:

# coding: utf8

这必须是 #! 行之后的第一行

EMACS 和 VIM 格式也受支持。

遗憾的是错误消息没有包含解决方案。

如果您使用 Python 3.x 您必须使用:

pdf.output(dest='S').encode('latin-1','ignore')

text=text.encode('latin-1', 'ignore').decode('latin-1')

为了得到输出。