我有一个问题如何在 Java 中进行转换:
String word="Conformément";
至
这个:
String word = "Conform%C3%A9ment";
第二个在字符串通过 web 时进行转换。
在此先感谢,米哈伊尔
你可以做
String encodedWord = URLEncoder.encode(word, "UTF-8");
您可能希望按照其他线程URLEncoder.encode()
中的建议使用。
这取决于您希望将这个词插入到 URI 的哪个部分。
最好的办法是使用支持URI Templates的库。而且(无耻的插头)我有一个可以工作的。
只需创建一个模板并填写正确的值。我也可以帮助您创建模板。
不,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());