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')
为了得到输出。
我正在尝试使用 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')
为了得到输出。