當前位置:首頁 » 編程語言 » python輸出unicode

python輸出unicode

發布時間: 2022-05-06 20:16:33

python3.6從網頁源碼中抓取的unicode無法輸出中文

importrequests
frombs4importBeautifulSoup
importchardet
defget_charset(byte_str):
charset=chardet.detect(byte_str)['encoding']
returncharset
r=requests.get('http://xiaorui.cc/2016/02/19/代碼分析python-requests庫中文編碼問題/')
r.encoding=get_charset(r.content)
soup=BeautifulSoup(r.text,'lxml')
soup.text

亂碼的原因主要是網頁的字元集和你輸出的字元集不一致造成的,讓你的輸出和採集到的字元集保持一致就可以了

我這里用requests

urllib庫也是一樣的

Ⅱ python unicode麻煩幫我按句解釋下,unicode()函數作用到底是什麼

UNICODE函數wei 預先編寫的公式,可以對一個或多個值執行運算,並返回一個或多個值。函數可以簡化和縮短工作表中的公式,尤其在用公式執行很長或復雜的計算時的公式語法和用法。如果文本包含部分代理項或數據類型無效,則UNICODE返回錯誤值#VALUE!。

Unicode通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為0就可以。

因為Python的誕生比Unicode標准發布的時間還要早,所以最早的Python只支持ASCII編碼,普通的字元串ABC在Python內部都是ASCII編碼的。



(2)python輸出unicode擴展閱讀

Unicode為了解決傳統的字元編碼方案的局限而產生的,例如ISO 8859所定義的字元雖然在不同的國家中廣泛地使用,可是在不同國家間卻經常出現不兼容的情況。

很多傳統的編碼方式都有一個共同的問題,即容許電腦處理雙語環境(通常使用拉丁字母以及其本地語言),但卻無法同時支持多語言環境(指可同時處理多種語言混合的情況)。

Unicode編碼包含了不同寫法的字,如「ɑ/a」、「戶/戶/戸」。然而在漢字方面引起了一字多形的認定爭議。

Ⅲ python2.7 print 輸出unicode到文件

importcodecs

aaa=u'u66fe'

unicode_file=codecs.open('out.txt','w','utf-16')

unicode_file.write(aaa)

unicode_file.close()


代碼很簡單

Ⅳ python中如何列印或保存unicode編碼內容成中文

使用decode(「unicode-escape」)
例如:

string="u73bbu7483"
printstring.decode("unicode-escape")

Ⅳ python怎麼轉換unicode編碼

用decode()就行。decode()方法必須傳入一個參數,這個參數就是當前待轉碼的編碼,此函數方法的用意就是將當前編碼為Unicode編碼。

比如就你這提問的此頁面:

#使用版本是python2.
importurllib
url='https://..com/question/1499967322379602619.html?entry=qb_ihome_tag&hideOtherAnswer=true&newAnswer=1'
html=urllib.urlopen(url).read()
result=html.decode('gbk')
printresult

方法是絕對可行的

此法對字元串和文檔內容的解碼一樣有效。

Ⅵ python輸出到文件亂碼如何解決

python代碼文件的編碼
py文件默認是ASCII編碼,中文在顯示時會做一個ASCII到系統默認編碼的轉換,這時就會出錯:SyntaxError: Non-ASCII character。需要在代碼文件的第一行或第二行添加編碼指示:
1 # coding=utf-8 ##以utf-8編碼儲存中文字元
2 print '中文'
像上面那樣直接輸入的字元串是按照代碼文件的編碼來處理的,如果用unicode編碼,有以下三種方式:
1 s1 = u'中文' #u表示用unicode編碼方式儲存信息
2 s2 = unicode('中文','gbk')
unicode是一個內置函數,第二個參數指示源字元串的編碼格式。
decode是任何字元串具有的方法,將字元串轉換成unicode格式,參數指示源字元串的編碼格式。
encode也是任何字元串具有的方法,將字元串轉換成參數指定的格式。
(2)、字元串的編碼
用 u'漢字' 構造出來的是unicode類型,不用的話構造出來是str類型
str的編碼是與系統環境相關的,一般就是sys.getfilesystemencoding()得到的值
所以從unicode轉str,要用encode方法
從str轉unicode,所以要用decode
例如:
# coding=utf-8 #默認編碼格式為utf-8
s = u'中文' #unicode編碼的文字
print s.encode('utf-8') #轉換成utf-8格式輸出
但當python中間處理非ASCII編碼時,經常會出現如下錯誤:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的數字,python在默認的情況下認為語言的編碼是ascii編碼,所以無法處理其他編碼,需要設置python的默認編碼為所需要的編碼。
一個解決的方案是在代碼中添加:
import sys
reload(sys)
sys.setdefaultencoding('utf-8') (其中utf-8為你想輸出的字元編碼)
解釋:
sys.setdefaultencoding方法在python導入site.py後就刪除了(具體代碼查看site.py就可以看到)因此如果想用的話可以再重新load進入
總結:
u=u'unicode編碼文字'
g=u.encode('gbk') #轉換為gbk格式
print g #此時為亂碼,因為當前環境為utf-8,gbk編碼文字為亂碼
str=g.decode('gbk').encode('utf-8') #以gbk編碼格式讀取g(因為他就是gbk編碼的,需要事先知道它是GBK編碼)並轉換為utf-8格式輸出
print str #正常顯示中文(同文件輸出)
安全的方法:
s.decode('gbk','ignore').encode('utf-8′) #以gbk編碼讀取(當然是讀取gbk編碼格式的文字了)並忽略錯誤的編碼,轉換成utf-8編碼輸出。
推薦學習《Python教程》!

Ⅶ python將一個字元串列印成unicode的格式到文本中

content = u'中華人民共和國'
file.write(prep(content).replace('u', '').replace('\'', ''))

Ⅷ python 怎麼把字元轉換為unicode編碼

實現代碼如下:
a
=
'abce'#
print
type(a)b
=
a.decode("ascii")#
print
type(b)c
=
a.decode("ascii").encode("utf-8")#
print
type(c)
在python中進行編碼轉換都是通過unicode作為中間值實現的。所以要先decode成unicode字元,然後再使用encode轉換成utf-8編碼的str。可以把注釋取消了,看下轉換過程中的類型。

Ⅸ python unicode編碼

python unicode編碼:

下面的代碼創建了一個Unicode字元串,用UTF-8編碼器將它編碼,然後寫入到一個文件中去,接著把數據從文件中讀回來,解碼成Unicode字元串對象,最後,列印出Unicode字元串,用以確認程序正確地運行。

在Linux中編寫,在VIM中輸入如下代碼,保存為uniFile.py

#/home/xiaopeng/python/code/uniFile.py
'''
:Writes
aUnicodestringtoafileinutf-8andreadsitbackin
'''
CODEC='utf-8'編碼方式
FILE='unicode.txt'要存的文件名
hello_out=u"Helloworld "創建了一個Unicode格式的字元串
bytes_out=hello_out.encode(CODEC)用UTF-8編碼
f=open(FILE,'w')
f.write(bytes_out)寫入指定文件中
f.close()
f=open(FILE,'r')
bytes_in=f.read()讀取
f.close()
hello_in=bytes_in.decode(CODEC)解碼
printhello_in列印

在終端中輸入:python uniFile.py

結果列印出 Hello world

然後在python目錄下會發現多了一個名為unicode.txt的文件,用cat命令查看一下,發現裡面的內容和列印的結果一樣.

把Unicode應用到實際中注意一下四點:

1程序中出現字元串時一定要加一個前綴u

2不要用str()函數,用Unicode()代替

3 不要用過時的string模塊。如果傳給它非ASCII碼,它會把一切搞砸。

4 不到必須時不要在你的程序里編解碼Unicode字元,只在你要寫入文件或者資料庫或者網路時,才調用encode()函數和decode()函數。

熱點內容
curl靜態編譯 發布:2025-05-14 04:09:52 瀏覽:159
壓縮久期 發布:2025-05-14 04:08:46 瀏覽:941
sql置疑 發布:2025-05-14 04:07:09 瀏覽:440
java面試的演算法題 發布:2025-05-14 04:06:18 瀏覽:467
交叉編譯優化 發布:2025-05-14 03:48:52 瀏覽:532
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:133
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:483
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:693
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:827
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:773