python3 urllib.request.urlopen() 地址打開錯誤

錯誤內容:UnicodeEncodeError: 'ascii' codec can't encode characters in position 28-29: ordinal not in range(128)python

1.覺得是代碼錯誤,檢查tab符,並無問題,編碼

2.將代碼粘貼到空白項目中去,發現仍是不對。url

3.百度:http://blog.csdn.net/olanlanxiari/article/details/48201231spa

  1.Python在安裝時,默認的編碼是ascii,當程序中出現非ascii編碼時,python的處理經常會報這樣的錯UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python沒辦法處理非ascii編碼的,此時須要本身設置將python的默認編碼,通常設置爲utf8的編碼格式。.net

  2.將上面問題自身檢查,我這不存在這種問題,因此繼續百度code

  3.發現python3 urlopen()連接地址不能出現中文,,那麼有中文怎麼辦?blog

    a.辦法老是有的:替換ci

    b.將中文內容經過quote方法替換get

       from urllib.parse import quotestring

       quote(url)

       quote(url,safe='/:?=')  

    c.quote可用的參數以下:

      quote(string,safe='/',encoding=None,errors=None)

      reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","

相關文章
相關標籤/搜索