2013-08-04 18 views

回答

0

這取決於你想什麼URI的一部分,這個詞在被插入。

你最好的辦法是使用支持URI Templates庫。和(無恥插件)I have one which works

只需創建一個模板並填寫正確的值。我也可以幫助您創建模板。

沒有,URLEncoder.encode()工作這項工作。引用該項目的自述文件:

這種方法有一個很常見的誤解。它不編碼用於URI的字符串,它編碼用於POST數據的字符串,用於application/x-www-form-urlencoded數據;在這種編碼中,空格變成了+,而不是%20!

這裏就是字會顯示在查詢部分模板的一個例子:

http://my.site/some/where?word={word} 

使用上面的庫,代碼爲:

final URITemplate tmpl = new URITemplate("http://my.site/some/where?word={word}"); 
final VariableMapBuilder builder = VariableMap.newBuilder(); 
builder.addScalarValue("word", "Conformément"); 
tmpl.toString(builder.freeze()); // returns the correct result 
// Or: 
tmpl.toURI(builder.freeze()); 
tmpl.toURL(builder.freeze()); 
1

你可以做

String encodedWord = URLEncoder.encode(word, "UTF-8"); 
+0

嗨,我需要相反的組合。像é - >%C3%A9 – Mihail

+0

你能澄清嗎? 'URLEncoder.encode'已經返回該序列... – Reimeus

+0

是的,但它不適用於URIs,請參閱我的答案 – fge

0

您可能需要使用URLEncoder.encode()在其他this線程建議。