我在URLDecoder
類中玩了一下Java,分析了一些URL,並且遇到了問題。我不確定它是一個錯誤還是預期的行爲,所以在這裏。「聖保羅」中的Java扼流圈中的URLDecoder
考慮一下這個網址: https://id2.s.nfl.com/fans/mobile/login?gigyresp=true&city=S%u00e3o +聖保羅%2C +巴西 & profileURL = ...
URLDecoder
是對 「聖保羅」 部分窒息,特別是 「A」,這似乎被編碼爲「%u0」。幾乎其他任何東西似乎都可以很好地處理,但這種特殊情況沒有。
我使用了以下內容:
URLDecoder.decode(url, "UTF-8");
我的堆棧跟蹤:
Caused by: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u0"
at java.net.URLDecoder.decode(URLDecoder.java:173)
任何想法我怎麼可能讓URLDecoder
正確解析呢?
如果我把它放到一個URLEncoder在線上,我會得到'S%C3%A3o%20Paulo' –
這不是一個正確的URL編碼字符串 - 編碼百分比的字節只能從%00到%FF。你將不得不使用URLDecoder以外的東西。 – Alex