python任意編碼轉utf8或者unicode

2022-03-27 15:17:24 字數 1587 閱讀 2565

# encoding: utf-8

'''

created on 2023年2月8日

import chardet

def mytoutf8(s):

return mytounicode(s).encode('utf-8')

def mytounicode(s):

if type(s) == type(u''):

#         print '1'

return s

try:

#         print '2'

s = s.decode('utf-8')

except:

try:

#             print '3'

s = s.decode('gb18030')

except:

print '***error: decode string()'.format(repr(s))

print traceback.print_exc()

s = repr(s)

#     print '4'

return s

if __name__ == '__main__':

# test 中國i love you

# utf-8

s = ur'中國i love you'

print repr(s), s

cc = ['utf-8', 'gb18030', 'gbk']

fn = [mytounicode, mytoutf8, ]

for f in fn:

for c in cc:

#             print '=' * 80

print '''() = , '''.format(f.__name__, c, repr(f(s.encode(c))), f(s.encode(c)))

直接使用chardet,轉碼可能會得不到預期的結果。

使用中,chardet.detect()返回字典,其中confidence是檢測精確度,encoding是編碼形式

以下是chardet的使用方法節選自:

(1)網頁編碼判斷:

>>> import urllib

>>> rawdata = urllib.urlopen('').read()

>>> import chardet

>>> chardet.detect(rawdata)

(2)檔案編碼判斷

import chardet

tt=open('c:\\111.txt','rb')

ff=tt.readline()

#這裡試著換成read(5)也可以,但是換成readlines()後報錯

enc=chardet.detect(ff)

print enc['encoding']

tt.close()

iOS 漢字轉UTF 8編碼

1.編碼 ios中http請求遇到漢字的時候,需要轉化成utf 8,用到的方法是 nsstring encodingstring urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding 2.解碼 請求後,返回的...

《轉》亂碼UTF8和UTF 8網頁編碼

曾經被字符集間複雜的轉換搞怕了,正好新專案要求國際化,需要能夠顯示多種語言,於是一開始就規定統統使用 utf 8 編碼。所有 檔案使用 utf 8 編碼存檔 mysql資料庫所有表,所有字段設定 collation 中文翻譯為 整理 屬性為 utf8 general ci 所有頁面輸出 即便是這樣,...

Python 使用 UTF 8 編碼

原文出處 url 一般我喜歡用 utf 8 編碼,在 python 怎麼使用呢?1 在 python 原始碼檔案中用 utf 8 文字。一般會報錯,如下 file f workspace psh src test.py line 2 syntaxerror non ascii character x...