Python3中文轉換URL編碼

這篇文章主要介紹了python實現中文轉換url編碼的方法,結合實例形式分析了Python針對中文的gbk與utf-8編碼轉換的相關技巧,具備必定參考借鑑價值,須要的朋友能夠參考下python

今天要作一個藝術網站上的東西。想要作一個關鍵詞的查詢,輸入的是中文,例如(香港歷史博物館),可是卻出現編碼錯誤問題,所以需 要作一個轉換。這裏咱們就用到了模塊urllib。網站

import url lib

data = "香港歷史博物館"

data = urllib.parse.quote(data)

print(data)

# 其結果是:
'%E9%A6%99%E6%B8%AF%E5%8E%86%E5%8F%B2%E5%8D%9A%E7%89%A9%E9%A6%86'

Ok了。編碼

須要注意的是,爲使用的是python3,在python3中,urllib模塊的quote是在parse中的。而python2中的quote是直接在urllib中的。url

import url lib

data = "香港歷史博物館"

data = urllib.quote(data)

print(data)

那咱們想轉回去呢?code

data = urllib.parse.unquote('%E9%A6%99%E6%B8%AF%E5%8E%86%E5%8F%B2%E5%8D%9A%E7%89%A9%E9%A6%86')

print(data)

# 結果是:
'香港歷史博物館'

有些網站,他們的編碼並非utf8,也許是gbk,或者什麼其餘的,這個時候,轉換出來的所需url編碼可能就不是'%E9%A6%99%E6%B8%AF%E5%8E%86%E5%8F%B2%E5%8D%9A%E7%89%A9%E9%A6%86'這樣的了,而是'%CF%E3%B8%DB%C0%FA%CA%B7%B2%A9%CE%EF%B9%DD' 相似這樣的(這是gbk的)。那麼,咱們怎麼辦呢?utf-8

很簡單。class

urllib.parse.quote(data.encode('gbk'))

是否是很簡單,在轉換以前,先encode一下,完美解決。import

相關文章
相關標籤/搜索