某個站點(不受我控制)有一個內部搜索引擎,它使用的GET請求如下所示:something.com/search?query=%u0001%0101
,我希望在我的Java代碼中使用它。必須使用UTF-16 URL編碼來提交Java搜索。我怎麼能夠?
據我瞭解,這是一種不常用的方式(UTF-16)來進行Url編碼。我嘗試使用HttpURLConnection與上述類型的Url,但是這會引發我一個java.net.URISyntaxException Malformed escape pair at index X
(X是%u0001的位置)。
我該怎麼辦?我對這些網址編碼問題很陌生,所以任何建議都將非常感謝。
也許你必須雙重編碼?首先是UTF-16,然後是URL編碼? – home
不知道你的意思,但也許這將澄清:首先我編碼的Unicode字符爲ASCII以匹配網站的語法(假如%$# - >%u0000%u0002%u0500),然後我從他們創建一個URL,並嘗試打開連接。所以我的代碼是這樣的:Url(「something.com/search?query=%u0000%u0002%u0500」)。openConnection(); – DannyA
對於我的具體情況,[答案在這裏](http://stackoverflow.com/questions/2280863/uri-encoding-in-unicode-for-apache-httpclient-4)解決了這個問題。儘管我還沒有嘗試過,但我的搜索得出的結論是,麥克道威爾有一個正確和更一般的方法。 – DannyA