我有一個問題,我怎麼可以在Java轉換這樣的:轉換特別charecters在URL GET/POST請求的Java
String word="Conformément";
到
這樣的:
String word = "Conform%C3%A9ment";
第二個轉變當字符串通過網頁時。
由於提前, 米哈伊爾
我有一個問題,我怎麼可以在Java轉換這樣的:轉換特別charecters在URL GET/POST請求的Java
String word="Conformément";
到
這樣的:
String word = "Conform%C3%A9ment";
第二個轉變當字符串通過網頁時。
由於提前, 米哈伊爾
這取決於你想什麼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());
你可以做
String encodedWord = URLEncoder.encode(word, "UTF-8");
您可能需要使用URLEncoder.encode()
在其他this線程建議。
嗨,我需要相反的組合。像é - >%C3%A9 – Mihail
你能澄清嗎? 'URLEncoder.encode'已經返回該序列... – Reimeus
是的,但它不適用於URIs,請參閱我的答案 – fge