Python 编码问题:出现中文乱码-- (转)
问题描述:
在写Python代码的过程中,有用到需要输出中文的地方(python2.6.5在中文注释的地方就会出错),但是运行后会出错
我的错误显示:
SyntaxError: Non-ASCII character '\xef' in file WebService.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
错误提示中给出了问题解决的连接
问题解决:
通过学习错误中给出的连接,发现是编码问题,如果在python中出现了非ASCII码以外的其他字符,需要在代码的开头声明字符格式。
具体声明字符的方法有三种:
1. #coding=<encoding name>
2. #!/usr/bin/python
#-*-coding:<encoding name>-*-
3. #!/usr/bin/python
# vim: set fileencoding=<encoding name> :
选用三种种的一种,在代码的开头加上指定的编码格式。就会解决刚才出现的问题。
例如,我在代码中加入了(必须将编码注释放在第一行或者第二行):
#!/usr/bin/python
#-*-coding:utf-8-*-
这就解决了显示中文的问题。
Python的经典问题——中文乱码
估计入门时都会遇到的。我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正常的。百思不得其解。首先查看了一下源文件的编码格式,是UTF-8。经过搜索再搜索,调试再调试,也换了几个编译器,发现比IDLE还糟糕(可能需要进行encode设置)。问题终于解决了,一共花了俺将近5个小时,写在这里,希望遇到问题的人能搜索到这里,不再重犯。
乱码原因:
因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。
解决方法:
在控制台打印的地方用一个转码就ok了,打印的时候这么写:
print myname.decode('UTF-8').encode('GBK')
比较通用的方法应该是:
import sys
type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)
文章来源:http://hi.baidu.com/yobin/item/166e3a46537781d3c1a59257
值得阅读的文章:Python 处理中文的一些小技巧UNICODE encoding
Python 编码问题:出现中文乱码-- (转)的更多相关文章
- python基础系列教程——Python中的编码问题,中文乱码问题
python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...
- Python 生成的页面中文乱码问题
第一 保证 程序源文件里的中文的编码格式,如我们把 源文件的编码设置成utf8的. reload(sys) sys.setdefaultencoding('utf-8') 第二, 告诉浏览器,我们须要 ...
- qt creator修改程序编码(解决中文乱码问题)的方法
qt creator修改程序编码(解决中文乱码问题)的方法 qt creator修改程序编码的功能有几处. 1.edit - select encoding 选择载入(显示)编码和储存编码,其中GB2 ...
- python向数据库插入中文乱码问题
1.python向数据库插入中文乱码问题 直接手动insert into 中文 不乱码,但是用程序跑起来就乱码. conn =MySQLdb.connect(host="127.0.0.1& ...
- Linux Centos7设置UTF-8编码,防止中文乱码
Linux Centos7设置UTF-8编码,防止中文乱码 # localeLANG=zh_CN.gb2312LC_CTYPE="zh_CN.gb2312"LC_NUMERIC=& ...
- python操作数据库产生中文乱码问题【已解决】
记:最近在使用python进行学生成绩管理系统设计时,遇到了一个中文显示的问题,这个问题困扰了一个上午,查阅了有关资料,锁定了原因——编码问题.最终更改编码设置,问题得到了解决. 具体做法: 1 Py ...
- Python的经典问题——中文乱码
关键字:Python UTF-8 GBK 中文 乱码 估计入门时都会遇到的.我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正 ...
- Mysql 的字符编码机制、中文乱码问题及解决方案【转载】
本文转载自:http://hi.baidu.com/huabinyin/item/7f51e462df565c97c4d24929.感谢作者及相关博主. 相信很多朋友都会对字符编码敬而远 ...
- python 数据库操作产生中文乱码的解决办法
1.执行python mysql数据库查询操作时,产生中文乱码 #!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb db = MySQLd ...
- Python 编码转换与中文处理
python 中的 unicode是让人很困惑.比较难以理解的问题. 这篇文章 写的比较好,utf-8是 unicode的一种实现方式,unicode.gbk.gb2312是编码字符集. py文件中的 ...
随机推荐
- Win10修改编辑hosts文件无法保存怎么办
Win10无法修改编辑保存hosts文件怎么办?Win10系统默认是没有权限去编辑保存系统里的文件,这也是权限不够才导致修改编辑hosts后无法保存的原因,解决的办法就是把自己的帐户权限给提高就行了. ...
- mysql通过binlog恢复数据
如果mysql不小心操作失误导致数据错误或者丢失这时候binlog起到了很大的作用 恢复有几种方式 1.按时间恢复--start-datetime 如果确定了时间点,那么按时间恢复是一个再好不过的 ...
- 【bzoj3932】[CQOI2015]任务查询系统 离散化+主席树
题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei ...
- BZOJ3124 SDOI2013直径
本以为必有高论,结果是个思博题.随便找一条直径,最后答案肯定是这条直径上的连续一段,如果某分支长度等于直径上某端的长度这一端都要被剪掉. #include<iostream> #inclu ...
- BZOJ4735 你的生命已如风中残烛(组合数学)
将每个位置上的数都-1,则显然相当于前缀和始终非负. 然后就是完全想不到的了.考虑往里面加一张-1的牌.假设在一个合法排列的最后添上一个-1,那么在该排列的所有循环同构排列中,满足前m个前缀和都非负的 ...
- Linq里where出现null的问题
今天遇到一个问题,怎么在where里判断一个字段是否为null,并且这个字段不是字符串string类型,而是int和GUID类型,折腾了半天终于搞明白了.(由于项目是我半路接手的,问题是前期的同事给我 ...
- Linux相关——手写测试程序
由于本人太弱,,,不会lemon,,,也不会在ubuntu下安装lemon,所以我选择手写测试程序emmmm 首先要写这个东西我们要先知道对拍怎么写. ; i <= ; i++) { syste ...
- BZOJ3172:[TJOI2013]单词——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3172 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单 ...
- LG. 1003 铺地毯
LG. 1003 铺地毯 题意分析 给出平面中地毯的左上角坐标和长宽,然后给出一点(x,y).求此点最上面是哪个地毯的编号,若没被覆盖则输出-1. 将所有地毯的信息存在一个结构体中,由于后埔地毯在上面 ...
- Vue项目搭建过程
环境搭建:mac+nodejs+npm #安装node.js : $ brew install node #安装vue-cil: $ npm install -g vue-cli 注:官网下载安装no ...