我已編碼的URL這是什麼類型的URL編碼?
http://blahblah.com/s%E2%80%8Btart/DEE-G%E2%80%8B6F-W4A-2N1%E2%80%8B5
爲
http://blahblah.com/start/DEE-G6F-W4A-2N15
什麼樣的編碼爲這個問題以及如何轉換我是在Python?
我已編碼的URL這是什麼類型的URL編碼?
http://blahblah.com/s%E2%80%8Btart/DEE-G%E2%80%8B6F-W4A-2N1%E2%80%8B5
爲
http://blahblah.com/start/DEE-G6F-W4A-2N15
什麼樣的編碼爲這個問題以及如何轉換我是在Python?
編輯:(由於與@interjay會話):
%E2%80%8B
表示ZERO WIDTH SPACE
。那些可能不應該在那裏。使用urllib.unquote
In [135]: 'http://blahblah.com/s%E2%80%8Btart/DEE-G%E2%80%8B6F-W4A-2N1%E2%80%8B5'.replace('%E2%80%8B', '')
Out[135]: 'http://blahblah.com/start/DEE-G6F-W4A-2N15'
在一般情況下,引用網址,可以不帶引號的:你可以用str.replace
刪除它們
In [6]: import urllib
In [7]: print(urllib.unquote('http://blahblah.com/s%E2%80%8Btart/DEE-G%E2%80%8B6F-W4A-2N1%E2%80%8B5'))
http://blahblah.com/start/DEE-G6F-W4A-2N15
這裏是你如何能告訴%E2%80%8B
代表ZERO WIDTH SPACE
:
In [18]: x = urllib.unquote('%E2%80%8B')
In [19]: y = x.decode('utf-8')
In [20]: import unicodedata as UD
In [21]: [UD.name(c) for c in y]
Out[21]: ['ZERO WIDTH SPACE']
注意,unqoted URL包括零個寬空格:
In [4]: urllib.unquote('http://blahblah.com/s%E2%80%8Btart/DEE-G%E2%80%8B6F-W4A-2N1%E2%80%8B5')
Out[4]: 'http://blahblah.com/s\xe2\x80\x8btart/DEE-G\xe2\x80\x8b6F-W4A-2N1\xe2\x80\x8b5'
這似乎是一個奇怪的事情放在一個網址...
我不明白什麼是在這個問題上怎麼回事,似乎「%E2%80%8B」只是隨機地插入到您的網址中。 - 這怎麼發生的?你試圖做些什麼來轉換它?你是如何從A-> B或從B-> A獲得的? – 2013-03-18 12:46:29
在IE中複製電子郵件並將其粘貼到Chrome或FF時會發生這種情況。 : -/ – Sri 2013-03-18 12:47:27
類似的問題和問題(%E2%80%8B)這裏http://stackoverflow.com/questions/6315422/encoding-issue-asp-net – 2013-03-18 12:47:48