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

改為

# -*- 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都可以的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM