29
我進入了Chrome瀏覽器的控制檯以下:的JavaScript decodeURI(組件)畸形URI例外
decodeURIComponent('a%AFc');
而是產生於a0xAFc
的,就引起了異常的URIError(畸形URI)。
我聽說過幾個藉口,爲什麼這可能是可能的,但我不明白的是爲什麼?
特別的decodeURIComponent()
功能應該對數據進行解碼,而不是驗證的URI。
我進入了Chrome瀏覽器的控制檯以下:的JavaScript decodeURI(組件)畸形URI例外
decodeURIComponent('a%AFc');
而是產生於a0xAFc
的,就引起了異常的URIError(畸形URI)。
我聽說過幾個藉口,爲什麼這可能是可能的,但我不明白的是爲什麼?
特別的decodeURIComponent()
功能應該對數據進行解碼,而不是驗證的URI。
%AF
是不是他自己的,但Unicode序列時(MACRON - %C2%AF
)的一部分字符。
%AF
不是由encodeURIComponent
產生的,而是像escape
這樣的東西,所以它可以被unescape
解碼。
你可能需要的是decodeURIComponent('%C2%AF')
我做起來後我試圖編碼文本的解碼負荷,失敗,發現它會窒息在那個特定的字符。也許'unescape'就是我需要的。 – Christian 2012-01-30 13:45:18
@ChristianSciberras'encodeURIComponent方法()'通常是一個更好的選擇,因爲它使用UTF-8的作品。然而,'0xAF'自身是無效的UTF-8編碼的字符序列。這就是爲什麼你的代碼不起作用。我希望現在更清楚。 – duri 2012-01-30 13:47:50
那麼,如果我需要處理ASCII/ISO-8859-1%的編碼輸入? 'unescape'已被棄用,也沒有'unescapeURI' – felixfbecker 2016-12-12 11:51:04