编码问题

1.读取文件乱码
原因:python2.7默认使用unicode编码读取文件
方法:在文件头部设置编码#coding=utf-8

2.写入文件乱码
原因:python2.7默认使用unicode编码
方法:设置默认输出编码为utf-8即可
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3.在使用reportlab.pdfgen 中的画布 canvas输出乱码
原因:reportlab中没有中文字体
方法:引入中文字体
from reportlab.pdfgen import canvas
from reportlab.pdfgen.canvas import Canvas  
from reportlab.pdfbase import pdfmetrics  
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
#字体一:CID字体(不推荐)
pdfmetrics.registerFont(UnicodeCIDFont('STSong-Light'))
from reportlab.pdfbase.ttfonts import TTFont
#字体二:linux系统字体(推荐)
import os
from reportlab.pdfbase import pdfmetrics,ttfonts
pdfmetrics.registerFont(ttfonts.TTFont('zenhei',os.path.join("wqy-zenhei", 'wqy-zenhei.ttc')))
pdfmetrics.registerFont(ttfonts.TTFont('microhei',os.path.join("wqy-microhei", 'wqy-microhei.ttc')))
canvas.Canvas("helloworld.pdf")
Canvas.setFont('zenhei',12)
字体一:STSong-Light宋体是CID字体,在本方案处理中文没有问题但是处理英文字体会紧贴在一起,非常不美观。
字体二:是自己下载的字体,从linux字体库/usr/share/fonts/下引入的os.path.join("字体文件夹", '字体文件名')
zenhei文泉驿正黑(推荐)
microhei文泉驿微米黑,换行会出现一些特殊符号像两个完全闭合的中括号[]

转载于:https://www.cnblogs.com/plxm/p/7615027.html

中文乱码——编码问题相关推荐

  1. java mysql数据库中文乱码 编码修改教程

    由于mysql的默认编码是Latin1,不支持中文,这样就会存在插入或者查询中文乱码的问题. 下面教大家如何查看自己数据库的编码,如图: 首先通过cmd命令进入到数据库安装目录的bin目录下,然后登陆 ...

  2. Linux 服务器中文乱码编码解决

    Linux环境的ECS中,若出现如下中文显示为乱码的情况. 一般原因如下: 1. 未安装中文语言包 2. 未设置正确的默认语言 3. SSH 终端未正确配置 本文以Centos 6.5为例,演示如何解 ...

  3. 爬取html数据中文乱码,解决PHP中file_get_contents抓取网页中文乱码问题

    根据网上有朋友介绍说原因可能是服务器开了GZIP压缩. 下面是用firebug查看我的博客的头信息,Gzip是开了的. 请求头信息原始头信息 代码如下 复制代码 Accept text/html,ap ...

  4. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  5. java/jsp/sql server项目 字符编码统一_JSP开发过程遇到的中文乱码问题及解决方案...

    对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码. 1.数据库编码不一致导致乱码 解决方法:首先查看数据库编码,输入: show variables like "%char%&qu ...

  6. MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK(转)

    一.设置新建常见类型文件的默认编码格式,也就是文件保存的格式. 在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码 ...

  7. PLSQL Developer 插入中文 乱码问题,如图 这个是由于oracle服务器端字符编码 和 Oracle 客户端 字符编码不一致引起的。 检查Oracle服务器端字符编码,用 sel

    PLSQL Developer 插入中文 乱码问题,如图 这个是由于oracle服务器端字符编码 和 Oracle 客户端 字符编码不一致引起的. 检查Oracle服务器端字符编码,用 select ...

  8. mysql存json将utf8编码 去掉,MySQL对JSON类型UTF-8编码导致中文乱码探讨

    原文:https://www.cnblogs.com/CreateMyself/p/12587426.html 前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有 ...

  9. 关于MySQL 5.6 中文乱码的问题(尤其是windows的gbk编码)

    一般MySQL 数据库乱码由以下几种情况造成(按照顺序): 1. 创建数据库的时候没设置编码,解决办法: 就是在创建数据库的时候设置编码, 例如: CREATE DATABASE `mydb` CHA ...

最新文章

  1. 【分块】#6277. 数列分块入门 1(区间修改、单点查询)
  2. Devexpress 重新编译以后 重新生成DEMO
  3. jquery无法删除一级域名cookie
  4. Java实体类去掉属性值空格
  5. scala 去除重复元素_Scala程序从列表中删除重复项
  6. 纸质书,电子书,你会选择通过哪一种途径学习?
  7. Java3种错误_3种常见的Class级别的错误
  8. javascript onbeforeunload与onunload事件
  9. 关于Hive在主节点上与不在主节点上搭建的区别之谈
  10. Java Greedy Snake, need to be updated
  11. 转发 JBPM工作流小结
  12. 3d游戏编程大师技巧 源代码_C/C++编程新手入门基础系列:俄罗斯方块小游戏制作源代码...
  13. 华为数通笔记-DHCP
  14. 程序员时间管理-番茄工作法
  15. 工程管理管理流程系统
  16. 大数据学习——spark运营案例
  17. 用MATLAB实现高斯投影正反算且画出高斯投影图形
  18. OSG路径漫游实现与应用
  19. python代码画樱花-如何用Python代码实现樱花树效果
  20. Android之在app图标添加角标

热门文章

  1. Android——为图片增加水印,并且保存到图库刷新
  2. excel shell合成_1分钟拆解:「如何将10多个工作表sheet,合并成一张?」
  3. 2017新加坡出差经历
  4. 使用列表推导式生成一个[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]的列表
  5. 软件体系结构(三)名词解释
  6. xshell6设置选中复制 右键粘贴复制内容
  7. 野路子解决微信服务器超时会把接口重新调起n次的方法
  8. 机械键盘恢复出厂fn_怎么切换fn恢复f1 - 卡饭网
  9. @MapKey的使用
  10. OOP和POP的区别