【问题标题】:UnicodeEncodeError: 'latin-1' codec can't encode when trying to write hebrew to a PDFUnicodeEncodeError:尝试将希伯来语写入 PDF 时,“latin-1”编解码器无法编码
【发布时间】:2019-09-05 13:11:18
【问题描述】:

我正在尝试使用 Python 中的 FPDF 库将一些希伯来语单词写入 pdf 文件

我得到一个错误

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 51-55: ordinal not in range(256)

我该如何解决这个问题并将希伯来语写入 PDF 文件?

在下面添加我的代码

     pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=15)
    welcome="היייי"
    pdf.cell(200, 10, txt=welcome, ln=1, align="C")
    pdf.output("simple_demo.pdf")

【问题讨论】:

    标签: python unicode fpdf


    【解决方案1】:

    来自set_font 文档:

    标准字体默认使用Latin-1编码,(...)

    未指定默认编码,但所有文本写入方法仅接受外部字体的 Unicode 和标准的一字节编码。

    您的Arial 是一个标准系列,因此它只接受Latin-1 编码(1 字节)。因此,您应该使用非标准字体更改字体,以便拥有 Unicode 字体,以便获得希伯来语文本。

    【讨论】:

    • 好的,谢谢你的解释!我会尝试搜索一种字体,但会是第一次做任何指针?
    • 好的,我找到了我电脑中的字体文件夹,其中一种字体可以使用!我要从那里复制一种字体到项目目录!感谢您的帮助!
    • @yishairasowsky:查看谷歌字体网站(你有这么多)。如果我没记错的话,“标准字体”只是少数(而且很旧:特殊行为只是为了兼容性)。
    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多