我正在解析wikipedia上的一些圖像鏈接。我碰到這一個http://en.wikipedia.org/wiki/Special:Export/Diego_Forl%C3%A1n爲什麼默認不推薦使用java.net.URLEncoder.encode,但在指定字符集時不能使用?
當我使用不推薦的URLEncoder.encode,我可以正確地編碼重音字符,但是當我指定「UTF-8」參數時,它失敗。維基百科上的文字是utf8 AFAIK。 Diego + Forl%E2%88%9A%C2%B0n + vs + the + Netherlands.jpg是不正確的。
scala> first
res24: String = Diego Forlán vs the Netherlands.jpg
scala> java.net.URLEncoder.encode(first, "UTF-8")
res25: java.lang.String = Diego+Forl%E2%88%9A%C2%B0n+vs+the+Netherlands.jpg
scala> java.net.URLEncoder.encode(first)
<console>:33: warning: method encode in object URLEncoder is deprecated: see corresponding Javadoc for more information.
java.net.URLEncoder.encode(first)
^
res26: java.lang.String = Diego+Forl%C3%A1n+vs+the+Netherlands.jpg
工作正常的Java 1.6.0_27-B07 –
使用OS X獅子(建立1.6.0_26-b03-383-11A511c) –
什麼不工作有關的結果呢?你沒有指出它是不正確的。 UTF-8中的重音字符通常是多字節。對這些多個字節進行編碼的URL將以第二種情況下的類似結果爲結尾。 –