You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Spyder中用pdfkit与wkhtmltopdf转土耳其HTML为PDF遇编码问题

问题:Spyder中pdfkit转换土耳其语HTML到PDF出现编码异常,Jupyter环境正常

同一Python环境下,使用pdfkit调用wkhtmltopdf转换含土耳其语特殊字符的HTML文件为PDF时,Spyder输出的PDF存在编码乱码/特殊字符显示异常,但在Jupyter Notebook中运行完全相同的代码,转换结果正常。

已完成的排查操作:

  • Spyder中已全局设置UTF-8编码(包括控制台、文件编码等选项)
  • HTML文件头部包含<meta http-equiv="Content-Type" content="text/html; charset=utf-8">标签
  • HTML中指定了支持土耳其语的字体(如font-family: 'Arial', 'Helvetica', sans-serif;)

相关代码示例

import pdfkit

# 配置wkhtmltopdf路径(若未加入系统环境变量)
config = pdfkit.configuration(wkhtmltopdf=r'C:\path\to\wkhtmltopdf.exe')

# 转换本地HTML文件
pdfkit.from_file('turkish_content.html', 'output.pdf', configuration=config)

# 或直接传入HTML字符串
html_content = """
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>
        body { font-family: 'Arial', sans-serif; }
    </style>
</head>
<body>
    <p>土耳其语测试:Merhaba dünya! Şş Ğğ İı Öö Üü Çç</p>
</body>
</html>
"""
pdfkit.from_string(html_content, 'output_string.pdf', configuration=config)

可行解决办法

1. 给pdfkit显式指定UTF-8编码参数

调用pdfkit时,通过options参数强制让wkhtmltopdf以UTF-8解析内容:

options = {
    'encoding': 'UTF-8',
    'no-outline': None
}
pdfkit.from_file('turkish_content.html', 'output.pdf', configuration=config, options=options)

2. 手动设置Spyder运行环境的编码变量

Spyder的控制台环境变量可能未正确继承UTF-8,在代码开头添加环境变量配置:

import os
os.environ['LANG'] = 'tr_TR.UTF-8'
os.environ['LC_ALL'] = 'tr_TR.UTF-8'

import pdfkit
# 后续转换代码...

3. 直接传递wkhtmltopdf的字符集命令行参数

若上述方法无效,通过options直接给wkhtmltopdf指定字符集参数:

options = {
    'charset': 'utf-8',
    'encoding': 'utf-8'
}
pdfkit.from_file('turkish_content.html', 'output.pdf', configuration=config, options=options)

4. 确认HTML文件实际保存为UTF-8编码

即使头部有meta标签,若HTML文件本身以其他编码(如ANSI)保存,仍会导致异常。右键HTML文件→用记事本打开→另存为,确认编码选择UTF-8。

5. 强制指定土耳其语支持的本地字体

若字体加载异常,在CSS中直接指定本地字体路径:

body {
    font-family: 'Arial Unicode MS', sans-serif;
    /* 或直接引用本地字体文件 */
    font-family: url('C:/Windows/Fonts/arial.ttf');
}

内容的提问来源于stack exchange,提问作者Selchuk Hadzhaahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:14:53