關(guān)于python中utf-8編碼的問(wèn)題

這個(gè)問(wèn)題說(shuō)大不大,說(shuō)是小問(wèn)題也很關(guān)鍵,有的時(shí)候真讓人頭疼

由于編程語(yǔ)言都是老外發(fā)明的,本身并不支持中文的輸入和顯示,所以我們就要聲明一種編碼來(lái)讓我們的程序支持中文,utf-8是最常用的一種

這里是百度百科對(duì)于utf-8的概述:

UTF-8(8-bit Unicode Transformation Format)是一種針對(duì)Unicode的可變長(zhǎng)度字符編碼,又稱萬(wàn)國(guó)碼。由Ken Thompson于1992年創(chuàng)建。現(xiàn)在已經(jīng)標(biāo)準(zhǔn)化為RFC 3629。UTF-8用1到4個(gè)字節(jié)編碼UNICODE字符。用在網(wǎng)頁(yè)上可以同一頁(yè)面顯示中文簡(jiǎn)體繁體及其它語(yǔ)言(如英文,日文,韓文)。

通常我們寫python程序的時(shí)候都要在文件最上面聲明程序用utf-8編碼,格式如下

# -*- coding: utf-8 -*-

還有兩種簡(jiǎn)略的形式

# coding:utf-8 或 # coding=utf-8

個(gè)人比較喜歡第一種,看起來(lái)更美觀

有的時(shí)候我們的程序需要解析文件中的內(nèi)容或者解析從網(wǎng)頁(yè)上獲取到的內(nèi)容,這時(shí)候就可能出現(xiàn)各種不可見(jiàn)的編碼,讓人頭痛。一種暴力的解決方式就是用reload(sys)方法

import sys

reload(sys)
sys.setdefaultencoding('utf-8')

但是,但是,但是,有的時(shí)候這種暴力的方法也不管用。這個(gè)時(shí)候我們就需要用chardet檢測(cè)一下可能出現(xiàn)問(wèn)題的字符串,看看到底是哪里出的問(wèn)題。

import chardet
chardet.detect(str)

這樣就可以輸出這個(gè)字符串的編碼,到底是什么問(wèn)題就要對(duì)癥下藥了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容