gpt4 book ai didi

python - 如何正确取消引用应该包含日语符号的网址

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:10 25 4
gpt4 key购买 nike

例如,我有以下字符串(这是我从错误编码的字符串中意识到的)

https://ja-jp.facebook.com/%C3%A5%C2%90%C2%8D%C3%A5%C2%8F%C2%A4%C3%A5%C2%B1%E2%80%B9%C3%AF%C2%BD%C5%A0%C3%AF%C2%BD%E2%80%99%C3%A3%E2%80%9A%C2%B2%C3%A3%C6%92%C2%BC%C3%A3%C6%92%CB%86%C3%A3%E2%80%9A%C2%BF%C3%A3%C6%92%C2%AF%C3%A3%C6%92%C2%BC%C3%A3%C6%92%E2%80%BA%C3%A3%C6%92%E2%80%A0%C3%A3%C6%92%C2%AB-219123305237478

这个 url 可以被浏览器正确解码,显示如下:

https://ja-jp.facebook.com/名古屋jrゲートタワーホテル-219123305237478/

有没有办法取消引用/解码字符串,这样它就不会像这样显示:

https://ja-jp.facebook.com/åå¤å±‹ï½Šï½’ゲートタワーホテル-219123305237478

浏览器最初会在短时间内显示具有相同垃圾的 url,但随后会在没有重定向的情况下调整字符串以使其看起来正常。

我正在尝试用这个简单的代码修复编码:

def fix_encoding(s):
for a in aliases:
for b in aliases:
try:
fixed = s.encode(a).decode(b)
except:
pass
else:
print (a, b)
print(fixed)

fix_encoding(u'åå¤å±‹ï½Šï½’ゲートタワーホテル-219123305237478')

我得到的最佳结果非常接近它应该看起来的样子,但是对于所有相同的结果,前 2 个符号都是错误的。例如:

��屋jrゲートタワーホテル-219123305237478
('1252', 'l8')

最佳答案

第一个 URL 已损坏。发生的事情是,一些软件认为正确的 UTF-8 URL 是 CP1252,即使 CP1252 中有一些字节无效。因此它将正确 URL 的字节从假定的 CP1252 转换为 UTF8,但当且仅当字节在 CP1252 中有效。无效字节保持原样。这就是为什么所有 URL 都不能通过一种编码-解码组合恢复的原因。

要反转所描述的过程,我们需要例如这段代码(在 Python 2 中):

#-*-coding:utf8-*-
from six.moves.urllib import parse

correct = 'https://ja-jp.facebook.com/名古屋jrゲートタワーホテル-219123305237478'
url = 'https://ja-jp.facebook.com/%C3%A5%C2%90%C2%8D%C3%A5%C2%8F%C2%A4%C3%A5%C2%B1%E2%80%B9%C3%AF%C2%BD%C5%A0%C3%AF%C2%BD%E2%80%99%C3%A3%E2%80%9A%C2%B2%C3%A3%C6%92%C2%BC%C3%A3%C6%92%CB%86%C3%A3%E2%80%9A%C2%BF%C3%A3%C6%92%C2%AF%C3%A3%C6%92%C2%BC%C3%A3%C6%92%E2%80%BA%C3%A3%C6%92%E2%80%A0%C3%A3%C6%92%C2%AB-219123305237478'
unq_url = parse.unquote(url.encode('ascii'))

res = ''
for c in unq_url.decode('utf8'):
try:
res += c.encode('cp1252')
except:
res += chr(ord(c))

print res == correct

关于python - 如何正确取消引用应该包含日语符号的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47257326/

25 4 0
文章推荐: python - 您如何让 Flask(Python) 默认识别所有静态文件夹的 index.html?
文章推荐: linux - 在linux中查找30天未读的文件
文章推荐: python - 使用 beautiful soup - 提取
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com