⑴ python lxml,中文亂碼
有裂團一個萬能轉碼的模型源肆塊,會自動識別並轉換,chardet
import chardet
def smartcode(stream):
____ustring = stream
____codedetect = chardet.detect(ustring)["encoding"]
____print codedetect
____try:
________print ustring
________ustring = unicode(ustring, codedetect)
________print ustring
________return "%s %s %s" % (" ",ustring.encode('utf8'))
____except:
________return u"bad unicode encode try!"卜轎
你可以網路一下.下載一個試試
⑵ python問題:用python解析excel文件能正確入庫(oarcle),但庫中漢字不能正常顯示,顯示亂碼,求解謝謝
顯示時的編碼沒設對吧
⑶ python寫文件中文亂碼
解決思路:
修改excel 打開csv 文件的編碼(可能會影響其它文件的打開,不作為首選方式)
修改python 打開文件的編碼 utf-8 -> utf-8-sig
修改前的編碼
f=open(filename,'w',encoding='utf-8')
修改後的編碼
f=open(filename,'w',encoding='utf-8-sig')
⑷ python用xlwt向xls中寫入中文,顯示亂碼該怎麼解決
這個是因為編碼問題,xls默認應該是gbk或者gb2312如果你把utf8編信消碼培坦正的配悔中文寫進去就會是亂碼。寫入前用.encode(「utf8」)一下應該就可以了
⑸ python print中文亂碼問題 win10 Python2
因為windows默認的編碼方式是GBK,python文件保存時使用了utf-8,在讀取時,python使用GBK的編碼表去解utf-8編碼的位元組碼,因為GBK與UTF-8編碼不兼容,自然出現了亂碼問題
解決方法:
1.直接使用 u'是' 形式,指明以unicode編碼,解碼方式會以頂部 #coding定義的編碼方式,如果不寫,以操作系統當前編碼方法,建議寫上#coding,因為要讓操作系統編碼和源文件編碼經常會不一樣。推薦使用這種方式
2.輸出時指定解碼方法 print '是'.decode("utf8") ,必須和保存的編碼一致,忽略#coding的定義
3.將#coding 和保存編碼改為和操作系統一樣的編碼,就可以直接print '是' 正常輸出,也不推薦,因為需要事先知道操作系統編碼,復制到其他電腦上,操作系統編碼不一樣就會出錯
#coding=gbk
printu'是'#方法1
print'是'.decode("gbk")#方法2
print'是'#方法3
注意:
#coding指明的編碼必須和保存的編碼一樣,不然1,3方法都會產生錯誤,原因也是保存編碼和讀取編碼不一致。一般IDE能夠自動根據#coding保存文件
⑹ python中文返回的亂碼問題
#-*- coding: utf-8 -*-
import win32api
import win32con
import time
from win32gui import *
def getWindow():
titles = set()
def foo(hwnd,nouse):
if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
#對增加的內容指定編碼好裂格式乎襪漏,運行歲爛調試通過,沒有亂碼
titles.add(GetWindowText(hwnd).decode('utf-8'))
EnumWindows(foo, 0)
print(titles)
if __name__=='__main__':
time.sleep(3)
getWindow()
⑺ python 如何讀取excel文件中的中文內容
你 print x.value試試?
不行的話,你dir一下x.value. 如果是亂碼,則需要轉一下碼就行了。
⑻ python中文顯示亂碼,已經在開頭有了coding: utf-8
亂碼原因:
因為你的文件聲明為 utf-8,並且也應該是用 utf-8 的編碼保存的源文件。但是 windows 的本地默認編碼是 cp936,也就是 gbk 編碼,所以在控制台直接列印 utf-8 的字元串當然是亂碼了。
解決方法:
py文件用記事本打開,另存為utf-8格式即可
⑼ 如何解決mac python3 中文亂碼
解決mac python3中文亂碼的方法:
在文件的最上面加上「#coding=utf-8」語句,#與coding之間有一個空格,該語句是告訴編輯器以utf-8的格式對中文字元進行解碼
示例如下:
這樣輸出的中文就不是亂碼了。
更多Python知識,請關註:Python自學網!!
⑽ python解決csv文件用excel打開亂碼問題
【問題】
python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。
原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。
【解決方法1】文件產出時encoding設置為utf-8-sig
用excel打開csv時,excel會先檢查文件的第一個字元,來了解這個文件是什麼編碼方式,如果這個字元是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。
如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可
【解決方法2】懶人法,適用只含簡體中文的文件
用記事本打開,點擊另存為,右下角編碼方式選擇「ANSI」,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。
參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? - 雲+社區 - 騰訊雲
對編碼格式一竅不通的可以閱讀以下網頁
python筆記——二進制和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客
編碼方式之ASCII、ANSI、Unicode概述 - 藍海人 - 博客園
【簡單總結】:
1. 首先需要了解 字元集 和 字元編碼 兩個概念,字元集定義了字元和二進制的一一對應關系,字元編碼規定了如何將字元的編號存儲到計算機中。
2. Unicode是字元集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。
3. 有些字元集和編碼是結合在一起的,稱作字元集還是編碼都無所謂,比如ASCII,GBK
4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)
5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。