python 在windows 中文显示详解编程语言

今天看到mechanize,在网上找例子实验,发现只要代码里出现中文,就会报错

SyntaxError: Non-ASCII character '/xe4' in file testMech.py on line 2, 
but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

python的默认编码文件是用的ASCII码

使用notepad++

(1)文件编码为:以UTF-8无BOM格式编码

如果python文件中使用了中文等非英语字符,就会报错了

解决的方法

在Python源文件的第一行加上

# coding=UTF-8

或者

# -*- coding:UTF-8 -*-

输出

# -*- coding:UTF-8 -*- 
string='你好'   
print string

python 在windows 中文显示详解编程语言

改为

# -*- coding:UTF-8 -*- 
string='你好'   
print string.decode('UTF-8') 

中文字符串是保存在元组、列表或者字典里,可以调用json模块的dumps方法

# -*- coding:UTF-8 -*- 
import json   
print u'你好'  
string='你好'   
print string.decode('UTF-8')  
t_tuple=('','你好')   
t_list=['','你好']   
t_dict={1:'',2:'你好'}   
print json.dumps(t_tuple,encoding='UTF-8',ensure_ascii=False)   
print json.dumps(t_list,encoding='UTF-8',ensure_ascii=False)   
print json.dumps(t_dict,encoding='UTF-8',ensure_ascii=False) 

(2)文件编码为:以ANSI格式编码

#coding:gbk 
string='你好'   
print string

中文输出正常

#coding:gbk 
import json 
string='你好'   
print string 
t_tuple=('','你好')   
t_list=['','你好']   
t_dict={1:'',2:'你好'}   
print json.dumps(t_tuple,encoding='gbk',ensure_ascii=False)   
print json.dumps(t_list,encoding='gbk',ensure_ascii=False)   
print json.dumps(t_dict,encoding='gbk',ensure_ascii=False) 

#coding:gb2312或者#coding:gbk都可以的

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20500.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论