文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么解决python pdfkit 中文乱码

2023-06-07 23:02

关注

这篇文章主要介绍“怎么解决python pdfkit 中文乱码”,在日常操作中,相信很多人在怎么解决python pdfkit 中文乱码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决python pdfkit 中文乱码”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用python pdfkit生成pdf文件中遇到中文乱码问题

生成的文件名不能带有中文字符

生成的pdf内容中文为乱码

生成的文件名不能带有中文字符

解决方法:

我暂时想到的处理方式是先生成英文文件名,再将这个文件重命名为中文的文件名

#coding=utf8import osimport pdfkitfrom uuid import uuid1ret = '<html><head><meta charset="UTF-8"></head><body><h2>测试pdf内容部分</h2></body></html>'.decode('utf8')file_name = str(uuid1())pdfkit.from_string(ret, file_name) # file_name不能带有中文 如果有会报错file_name_new = '测试.pdf'os.rename(file_name, file_name_new)

生成的pdf内容中文为乱码

原因1:

因为pdfkit生成pdf功能其实调用的是webkit的子模块wkhtmltopdf(通过命令行方式),所以pdfkit生成中文乱码其实是wkhtmltopdf中文乱码导致的;而wkhtmltopdf中文乱码是因为系统中不存在中文字体导致的

解决方法:

在系统中添加中文字体

我的本地电脑是ubuntu14.04的字体文件保存在/usr/share/fonts下(包含了中文字体文件具体哪一个我也不知道汗。),我的服务器是redhat系统(没有中文字体),所以在我的电脑上操作如下:

cd /usr/share/fontszip -r fonts.zip ./*scp fonts.zip 服务器用户名@服务器ip:/usr/share/fonts

在服务器上操作如下:

cd /usr/share/fontsunzip fonts.zipfc-cache -fvfc-list # 查看新添加的字体

你需要找一台有安装了中文字体的电脑复制一份字体文件(就是/usr/share/fonts下的文件),然后如我以上操作就可以了。

原因2:

需要在html的字符集设置为utf8

<head><meta charset="UTF-8"></head>

补充:python写入html文件中文乱码-解决办法

使用open函数将爬虫爬取的html写入文件,有时候在控制台不会乱码,但是写入文件的html中的中文是乱码的

案例分析

看下面一段代码:

# 爬虫未使用cookiefrom urllib import requestif __name__ == '__main__': url = "http://www.renren.com/967487029/profile" rsp = request.urlopen(url) html = rsp.read().decode() with open("rsp.html","w")as f: # 将爬取的页面 print(html) f.write(html)

看似没有问题,并且在控制台输出的html也不会出现中文乱码,但是创建的html文件中

怎么解决python pdfkit 中文乱码

解决方案

使用open方法的一个参数,名为encoding=” “,加入encoding=”utf-8”即可

# 爬虫未使用cookiefrom urllib import requestif __name__ == '__main__': url = "http://www.renren.com/967487029/profile" rsp = request.urlopen(url) html = rsp.read().decode() with open("rsp.html","w",encoding="utf-8")as f: # 将爬取的页面 print(html) f.write(html)

运行结果

怎么解决python pdfkit 中文乱码

到此,关于“怎么解决python pdfkit 中文乱码”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯