Java URLEncoder仅编码某些UTF-8字符,而不是全部编码在字符串中

Java URLEncoder仅编码某些UTF-8字符,而不是全部编码在字符串中,java,encoding,utf-8,Java,Encoding,Utf 8,假设我有一个url String url=“resultaten¶m2=consùmer” 我想对这个字符串进行URLEncode.encode(url,“UTF-8”)。我只想在空格和符号(&)被编码时保持(ë和ù)完整。所以最终的URL应该是 如何在java中实现这一点?首先,请记住,您应该仅使用URIEncode对查询参数进行编码。因此,您将在“?”字符之后编码 您的问题的另一个问题是,您实际上不想对整个查询进行编码。因此,对于某些特定的字符,没有方法对其进行编码。然后,您的问题

假设我有一个url

String url=“resultaten¶m2=consùmer”

我想对这个字符串进行URLEncode.encode(url,“UTF-8”)。我只想在空格和符号(&)被编码时保持(ë和ù)完整。所以最终的URL应该是


如何在java中实现这一点?

首先,请记住,您应该仅使用
URIEncode
对查询参数进行编码。因此,您将在“?”字符之后编码

您的问题的另一个问题是,您实际上不想对整个查询进行编码。因此,对于某些特定的字符,没有方法对其进行编码。然后,您的问题可以转换为类似“如何用其他字符替换某些字符”。因此,您可能希望对要更改的字符使用
replaceAll
方法,或者
indexOf
方法,如果要单独编码字符,则应合并

开始使用replaceAll方法的方法如下:

String query = "page1?param1=Financiële resultaten&param2=consùmer";
query.replaceAll("\\s+","%20");

然后字符串变为“page1?param1=financialële%20resultaten¶m2=consùmer”。

首先,请记住,您应该仅使用
URIEncode
对查询参数进行编码。因此,您将在“?”字符之后编码

您的问题的另一个问题是,您实际上不想对整个查询进行编码。因此,对于某些特定的字符,没有方法对其进行编码。然后,您的问题可以转换为类似“如何用其他字符替换某些字符”。因此,您可能希望对要更改的字符使用
replaceAll
方法,或者
indexOf
方法,如果要单独编码字符,则应合并

开始使用replaceAll方法的方法如下:

String query = "page1?param1=Financiële resultaten&param2=consùmer";
query.replaceAll("\\s+","%20");
然后字符串变为“page1?param1=financialële%20resultaten¶m2=consùmer”