Python3 出現'ascii' codec can't encode characters問題


當使用urllib.request.urlopen打開包含中文的鏈接時報錯:

from urllib import request

url = 'https://baike.baidu.com/item/糖尿病'
response = request.urlopen(url)

提示錯誤:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 10-12: ordinal not in range(128)

參考https://www.zhihu.com/question/22899135 和https://blog.csdn.net/sijiaqi11/article/details/78449770 得知,
urllib.request.urlopen不支持中英文混合的字符串。
應使用urllib.parse.quote進行轉換。

#coding=utf-8
from urllib import request
from urllib.parse import quote
import string

url = 'https://baike.baidu.com/item/糖尿病'
s = quote(url,safe=string.printable)
response = request.urlopen(s)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM