python中unicode編碼轉換成中文的方法解決

在抓取部分網站的時候,有的網站會出現unicode編碼的內容,這時候需要將編碼的內容轉換成中文,在網絡上搜索了一些文章,有一些是介紹的python2的版本的,在python3中已經發生變更,下面介紹幾種將unicode轉換成中文的方法

第一種方法:

       如果是直接寫在編碼裏面的unicode編碼,則在python3中,會被自動轉換成中文

Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> '\u5927\u53a6\u5ba4\u51852'
'大廈室內2'
>>> u'\u5927\u53a6\u5ba4\u51852'
'大廈室內2'
>>> print('\u5927\u53a6\u5ba4\u51852')
大廈室內2
>>> a = '\u5927\u53a6\u5ba4\u51852'
>>> a
'大廈室內2'
>>> a=u'\u5927\u53a6\u5ba4\u51852'
>>> a
'大廈室內2'
>>> from fontTools import unicode
>>> unicode(a)
'大廈室內2'
>>> unicode('\u5927\u53a6\u5ba4\u51852')
'大廈室內2'

以上幾種輸出方式都可以將編碼自動轉換成中文

第二種方法:

       如果在抓取網站的過程中遇到了多個轉義字符的問題,利用以上方法就不太適用,如此,則需要替換部分轉義字符後再進行編碼的轉換

>>> s1=r'\\u7cbe\\u88c5\\u4fee'
>>> s1
'\\\\u7cbe\\\\u88c5\\\\u4fee'
>>> s1=s1.replace('\\\\', '\\')
>>> print((s1.encode('utf8').decode('unicode_escape')))
精裝修

>>> s2='\\u7cbe\\u88c5\\u4fee'
>>> s2
'\\u7cbe\\u88c5\\u4fee'
>>> print(s2.encode('utf8').decode('unicode_escape'))
精裝修

# 親自測試可以編碼成如下幾種方式再進行解碼,都可以轉換成中文
>>> ss.encode().decode('unicode_escape')
'精裝修'
>>> ss.encode('latin-1').decode('unicode_escape')
'精裝修'
>>> ss.encode('gbk').decode('unicode_escape')
'精裝修'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章