中文乱码——编码问题

Posted 大妖小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文乱码——编码问题相关的知识,希望对你有一定的参考价值。

编码问题

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文泉驿微米黑,换行会出现一些特殊符号像两个完全闭合的中括号[]

以上是关于中文乱码——编码问题的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7的中文乱码原因及编码设置

解决各种tomcat中文乱码问题

MobaXterm中文乱码问题解决

JSP中文乱码问题《转》

解决Linux文档显示中文乱码问题以及编码转换

mysql乱码问题