python中文编码问题

第一步:在代码中输入以下命令,执行:

#在Python中显示中文注释和输出中文
a ="中文"
print a

返回错误:

d:\Python27\python.exe "D:\test\中文.py"
Process started >>>
  File "D:\test\中文.py", line 1
SyntaxError: Non-ASCII character ‘\xe5‘ in file D:\test\中文.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
<<< Process finished. (Exit code 1)
================ READY ================

第二步,加入编码格式:

#-*- coding:utf-8 –*-

#在Python中显示中文注释和输出中文
a ="中文"
print a

返回结果:

d:\Python27\python.exe "D:\test\中文.py"
Process started >>>
涓枃
<<< Process finished. (Exit code 0)
================ READY ================

程序可以正确执行,但输出的仍是乱码。

第三步,查找乱码并处理:

原因:这是因为win的,命令行用的是cp936编码,而上面脚本用的是utf-8编码,因此导致乱码。

解决方法是,使用decode和encode函数对字符重新解码和编码。

#-*- coding:utf-8 –*-
#在Python中显示中文注释和输出中文
a ="中文"
print a.decode(‘utf-8‘).encode(‘cp936‘)

返回结果:

d:\Python27\python.exe "D:\test\中文.py"
Process started >>>
中文
<<< Process finished. (Exit code 0)
================ READY ================

时间: 2024-10-11 20:49:24

python中文编码问题的相关文章

Python中文编码问题(字符串前面加&#39;u&#39;)

中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢? 我们要知道python内部使用的是unicode编码,而外部却要面对千奇百怪的各种编码,比如作为中国程序经常要面对的gbk,gb2312,utf8等,那这些编码是怎么转换成内部的unicode呢? 首先我们先看一下源代码文件中使用字符串的情况.源代码文件作为文本文件就必然是以某种编码形式存储代码的,python默认会认为源代码文件是asci编码,比如说代码中有一个变量赋值: s

[Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下笔记.方便以后查阅和大家学习.        中文编码问题的处理核心都是——保证所有的编码方式一致即可,包括编译器.数据库.浏览器编码方式等,而Python通常的处理流程是将unicode作为中间转换码进行过渡.先将待处理字符串用unicode函数以正确的编码转换为Unicode码,在程序中统一用U

【原创】python中文编码问题:控制窗口能输出中文,到文本文件里乱码

遇到一个问题:控制窗口能正常输出中文,>到文本文件里却是乱码.最后解决了,总结一下Python中文编码的坑. 开始感觉非常奇怪,想第一行为什么是正常的?之后注意到文本文件为ANSI编码,第一行在代码里面是字符串的形式输出来的,而且代码的文本格式也为ANSI. 后面不正常的数据是在列表用utf-8编码输出来的.开始想把第一行用utf-8输出来,把代码改为s.decode('gbk').encode('utf-8') ,发现结果还是不行.因为直接输入的字符串是按照代码文件的编码来处理的. 之后把列表

5.python中文编码 - python基础入门

python到目前为止,一共有两个版本,分别是2.x和3.x版本,根据官方正式通知2020年停止对python更新和维护,距离今天还有110天左右,所以正在学习python的小伙伴应该暗中庆幸一波. python2.x版本默认采用ASCLL编码,python3.x版本则默认采用UTF-8编码,两者有什么区别呢?唯一区别就是如果代码或者注释中含有中文,ASCLL编码会出现乱码,UTF-8却可以正常显示中文,即python2.x版本中文显示不正常,python3.x版本正常. 一.为什么会出现乱码

【原创】python中文编码问题深入分析(三):python2.7文件读写中文编码问题

上一篇文章介绍和分析了python2.7中使用print遇到的中文编码问题的原因和解决方案,本篇主要介绍一下python2.7中执行文件读写可能遇到的编码问题. 1.文件读取 假如我们读取一个文件,文件保存时,使用的编码格式,决定了我们从文件读取的内容的编码格式,例如,新建一个文本文件test.txt, 编辑内容,保存的时候注意,编码格式设定为gb2312,那么使用python读取文件内容,方式如下: f = open('test.txt','r') s = f.read() #读取文件内容,如

Python中文编码过程中遇到的一些问题

首先,要明确encode()和decode()的差别 encode()的作用是将Unicode编码的字符串转换为其它编码格式. 比如:st1.encode("utf-8")  这句话的作用是将Unicode编码的st1编码为utf-8编码的字符串 decode()的作用是把其它编码格式的字符串转换成Unicode编码的字符串. 比如:st2.decode("utf-8") 这句话的作用是将utf-8编码的字符串st2解码为Unicode编码的字符串 第二,除Unic

Sublime和Python中文编码的一些问题

Windows下的控制台中,应该是这样的逻辑: 1.如果是Unicode字符串的话,首先根据控制台编码进行转换 2.之后进行输出 所以在Windows控制台下,假设str = u'中文', 1.直接print str是可以正确输出的 2.print str.encode('gbk')或者print str.encode('gb2312')是正确输出的 3.print str.encode('utf-8')是输出乱码 在Windows系统下的Sublime Text中,假设str = u‘中文',

Python 中文编码问题

在Python2.7的环境下使用中文字符串很不方便,通常有不能识别的异常抛出.不想升级新版本的我搜索到了一些有用的方法: 1.python文件开头加入 #-*- coding: gbk -*- 2.如果有字符串不能被某些库识别,尝试这样转换 u_string = unicode(str,"gb2312")

python 中文编码(一)

我在学python的过程中,遇到的第二个问题,就是中文乱码,如今也算勉强入门了,在这里给大家说说我的经验,也算个新人引导吧. 在文章里,我会重点提到一个概念:有来有去. 即数据从哪里来,到哪里去? ==================================================== 1.windows下cmd终端中的中文 C:\Documents and Settings\admin>python Python 2.7.7 (default, Jun 1 2014, 14:1

Python 中文编码

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错. 解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了. 实例(Python 2.0+) #!/usr/bin/python# -*- coding: UTF-8 -*- print "你好,世界"; 意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码.