python - FPDF编码在Python中不起作用
问题描述
我正在尝试使用 Python 和 FPDF 创建 PDF 文件。我已经阅读了有关 unicode 的项目页面,并且尝试按照他们的说明进行操作,但是每次运行程序时,都会收到错误消息:
文件“eventsmanager.py”,第 8 行 SyntaxError:第 8 行文件 eventsmanager.py 中的非 ASCII 字符“\xc3”,但未声明编码;有关详细信息,请参见http://python.org/dev/peps/pep-0263/
这是我的程序:
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 格式。
遗憾的是错误消息不包含解决方案。
推荐阅读
- node.js - Docker 创建和运行镜像失败
- php - PHP Foreach 查询检查
- docusignapi - Docusign、预填充模板、文本和无线电混淆 - 通用数据选项卡?
- excel - 直到下一行的自动填充连续日期具有值
- php - 如何从 Stripe 对象 PHP 中获取关联数组
- autodesk-forge - 尝试从 BIM 360 URN 显示 SVF 时出错
- pandas - 计算带有条件的连续熊猫数据框行之间的天差
- java - 使用 Volley / RecyclerView 从按钮单击的 JSON 中提取新信息
- apache-spark - 从“未配置分区重置策略的偏移量超出范围”中恢复
- python - 为什么这个类的所有实例都具有相同的 end_pos 变量,即使我用不同的值初始化它们