0

我有一个问题如何在 Java 中进行转换:

String word="Conformément";

这个:

String word = "Conform%C3%A9ment";

第二个在字符串通过 web 时进行转换。

在此先感谢,米哈伊尔

4

3 回答 3

1

你可以做

String encodedWord = URLEncoder.encode(word, "UTF-8");
于 2013-08-04T14:17:37.430 回答
0

您可能希望按照其他线程URLEncoder.encode()中的建议使用。

于 2013-08-04T14:18:22.953 回答
0

这取决于您希望将这个词插入到 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());
于 2013-08-04T14:18:51.370 回答