我有一个问题,我如何用Java转换:
String word="Conformément";
到
这样:
String word = "Conform%C3%A9ment";
当字符串通过网络传输时,第二个被转换。
提前致谢, 米哈伊尔
答案 0 :(得分:1)
你可以做到
String encodedWord = URLEncoder.encode(word, "UTF-8");
答案 1 :(得分:0)
您可能需要按this其他主题中的建议使用URLEncoder.encode()
。
答案 2 :(得分: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());