【python】中文的输出,打印,文件编码问题解决方法
直接在python中输入中文的字符串会报编译错误SyntaxError: Non-ASCII character,因为python文件默认编码方式是ASCII。如果想要打印中文字符,有两种方式:
1.在文件第一行加入# -*- coding: UTF-8 –*-,修改文件的默认编码方式。然后直接在python 文件编辑中文字符串即可,例如:string = “中文”
2. 将需要打印的中文字符转化成unicode编码并且加上u,例如要打印“我们”,则写成u“\u6211\u4eec”
print u'\u6211\u662f'
3. 如果遇到 类似UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0错误,因为在定义中文字符串变量时候,没有加上u,例如:string = “中文”而不是string = u“中文”,
这个时候python会把按照默认的中文字符串用ASCII进行编码,则可能会出现一些错误,要想吧类似string = “中文”的字符串用utf8编码,在文件前面加上如下代码即可:
import sys reload(sys) sys.setdefaultencoding('utf8')
4.字符串前面加了U之后会变成unicode类型,这时候是python独立的一种类型,如果直接写入字符类型的数据库字段或者当成字符串进行操作,可能会遇到意想不到的错误。
5. 如何吧一个 string = '\u5168\u56fd'变成 unicode类型?
用eval("u"+"'\u5168\u56fd'")方法即可
6. scrapy网络爬虫中文乱码问题解决
(1)判断抓取网页字符编码格式
import chardet
code_format = chardet.detect(response.body)["encoding"]
(2)根据获取的编码方式进行解码,然后采用系统默认方式编码
import sys
type = sys.getfilesystemencoding()
response.body.decode(code_format).encode(type)
【python】中文的输出,打印,文件编码问题解决方法的更多相关文章
- (Python )格式化输出、文件操作、json
本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...
- python将命令输出写入文件或临时缓存
python将命令输出写入文件 将文件写入到对应文件,方便后期处理或保存 def write_file(file_path): with open(file=file_path, mode=" ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
- 深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- Python 文件编码问题解决
最近使用python操作文件,经常遇到编码错误的问题,例如: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbe in position ...
- MySQL导入含有中文字段(内容)CSV文件乱码解决方法
特别的注意:一般的CSV文件并不是UTF-8编码,而是10008(MAC-Simplified Chinese GB 2312),所以再通过Navicat导入数据的时候需要指定的编码格式是10008( ...
- php -- php检测文件编码的方法示例
<?php /** * 检测文件编码 * @param string $file 文件路径 * @return string|null 返回 编码名 或 null */ function det ...
- Python 2.7.3的文件编码问题,print在控制台下面中文乱码问题,以及推荐做法
情况:文件乱码,在cmd上输出print也乱码.解决方案:统一为gbk的简体中文编码方式.步骤如下: 1.每个py文件使用[简体中文(GB2312)- 代码页 936]格式保存,行尾为[Windows ...
- Python的格式化输出,基本运算符,编码
一. 格式化输出现在有以下需求,让用户输入name, age, job,hobby 然后输出如下所示: -----------info of Alex Li----------- Name : Ale ...
随机推荐
- nodejs 如何使用upgrade,并且C/B 发送消息
1 const http = require('http'); const querystring = require("querystring"); var postData = ...
- 编程修养-C语言篇(二)
1.版权和版本——————— 好的程序员会给自己的每个函数,每个文件,都注上版权和版本. 对于C/C++的文件,文件头应该有类似这样的注释: /*************************** ...
- 安卓手机用-----Exchange Activesync---同步Gmail日历联系人
微软Exchange Activesync是一个跨平台的移动设备同步协议 支持很多手机操作系统,比如诺基亚的塞班.黑莓的palm.WindowsMobile.Iphone.安卓等.这些手机上都可以用这 ...
- WPF笔记(1.3 属性元素)——Hello,WPF!
原文:WPF笔记(1.3 属性元素)--Hello,WPF! 这一节中“属性元素”的概念可以用匪夷所思形容.1.WPF用标签元素实现对象建模,有两种:Control和Container,都用来装载内容 ...
- bzoj1637 [Usaco2007 Mar]Balanced Lineup
Description Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ≤ 50,000) 头奶牛站成一条直线,每头牛都有它的坐标(范围: 0..1,000,000,000 ...
- UESTC_导弹拦截 2015 UESTC Training for Dynamic Programming<Problem N>
N - 导弹拦截 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- 转(havel 算法)
http://www.cnblogs.com/wally/p/3281361.html poj 1659(havel算法) 题目链接:http://poj.org/problem?id=1659 思路 ...
- OpenRisc-45-or1200的ID模块分析
引言 之前,我们分析了or1200流水线的整体结构,也分析了流水线中IF级,EX级,本小节我们来分析ID(insn decode)级的一些细节. 1,基础 or1200的pipeline的ID阶段包含 ...
- PHP MySQL Select 之Select
从数据库表中选取数据 SELECT 语句用于从数据库中选取数据. 语法 SELECT column_name(s) FROM table_name 注释:SQL 语句对大小写不敏感.SELECT 与 ...
- BCD码、十六进制与十进制互转
在做嵌入式软件的设计中,常常会遇到十六进制.BCD码与十进制之间的转换,近期做M1卡的应用中,涉及了大量的十六进制.BCD码与十进制之间的转换.通过对BCD码.十六进制 权的理解,轻松的实现了他们之间 ...