网址URL复制粘贴后,中文部分变“乱码“?

问题

浏览器地址栏中的网址(URL)【中文】部分,复制粘贴后变成“乱码”?
如下图浏览器地址栏中显示的网址(URL)为:
“https://www.baidu.com/s?ie=UTF-8&wd=百度”
在这里插入图片描述
当复制粘贴在word、记事本、excel中时,网址(URL)里面的【中文】部分将变成“乱码”,如下:

https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6

出现该问题的原因

网址(URL):本身不支持中文,所有中文字符都要经过编码之后才可以传输,浏览器地址栏中显示出中文部分仅是为了用户体验(直观易看)。
“乱码”:网址(URL)里面的中文部分被编码成了“%”+中文编码后的字符:%xx,如上述URL中的“百度”被编码为“%E7%99%BE%E5%BA%A6”。
总结来看,此处的“乱码”是一种经编码后显示的结果,是有规律和可以相互转换的。

处理方法

以下基于非技术、python技术两个角度,总结了该问题的处理方法。

1、非技术处理

此方法是最直接简单的处理方法,实现复制粘贴后的【中文】正常显示。
十分适用于日常撰写文档时,快速有效地复制含中文的URL。毕竟经过编码后的中文部分较长,使得整个文档看起来较为不直观、不简洁。
方法如下:
第一步:直接在浏览器地址栏中网址(URL)“http”前面添加任意个字符(数字、字母、汉字等),让浏览器自动识别不出来是URL。
在这里插入图片描述
第二步:复制需要的目标URL即可。如:https://www.baidu.com/s?ie=UTF-8&wd=百度。注意的是:如果直接复制,没有成功显示中文,就【回车】一下,再复制即可。

2、使用python处理

此方法借助python的urllib库,实现URL【中文】部分的编码与解码。
适用于批量处理等,特别是爬虫部分。

(1)解码

方法:urllib.parse.unquote(‘’)
释义:对URL【中文】“乱码”部分进行解码
实例:
对URL“https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6”中的“%E7%99%BE%E5%BA%A6”,进行解码。

from urllib.parse import unquote
url_str = 'https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6'
paras = unquote(url_str)
print(paras)

在这里插入图片描述

(2)编码

方法:urllib.parse.quote(‘中文’)
释义:将URL的中文部分进行编码
实例:对URL“https://www.baidu.com/s?ie=UTF-8&wd=百度”中的“百度”进行编码。

from urllib.parse import quote
url_str = '百度'
paras = quote(url_str)
url = "https://www.baidu.com/s?ie=UTF-8&wd={}".format(paras)
print(url)

在这里插入图片描述
以上关于网址(URL)中文“乱码”的原因及处理方法,可供参考。

-end-

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位代码

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值