Java 系统无关url编码

Java 系统无关url编码,java,encoding,Java,Encoding,我有一个web应用程序,它执行对另一个web应用程序的GET请求。在我的一个页面中,我有一个web表单,可以按名称进行搜索,其中可能包括特殊字符,如áêíóú等 问题是,如果我通过串联不同的参数来构建URI,结果会被错误编码。如果我使用URLEncoder.encode(value),那么结果是正确编码的,但此方法不推荐使用 如果我指定了编码,比如URLEncoder.encode(值“iso9809-1”),那么它可以工作,但据我所知,这是非常依赖于系统的 我如何制定一个适用于所有系统的URL

我有一个web应用程序,它执行对另一个web应用程序的GET请求。在我的一个页面中,我有一个web表单,可以按名称进行搜索,其中可能包括特殊字符,如áêíóú等

问题是,如果我通过串联不同的参数来构建URI,结果会被错误编码。如果我使用URLEncoder.encode(value),那么结果是正确编码的,但此方法不推荐使用

如果我指定了编码,比如URLEncoder.encode(值“iso9809-1”),那么它可以工作,但据我所知,这是非常依赖于系统的


我如何制定一个适用于所有系统的URL编码解决方案?

未经编码的弃用版本使用特定于平台的编码

“ISO-8859-1”(拉丁语-1)是HTTP协议的默认编码。这或多或少是“Windows-1252”(Windows拉丁语-1)的一个子集。包括一些西欧语言,如英语和德语


“UTF-8”最好,但您的服务器可能不支持。试试看。

是什么让你认为
urlcoder.encode(值,“iso 9809-1”)
依赖于系统?默认HTTP请求/响应应用程序协议应在内部使用
UTF-8
(并非所有系统)。您可以放心地假设
UTF-8
是一种更安全的方法。您提到的方法不仅不推荐使用,而且也不推荐使用另一种方法,该方法(a)在不推荐标签中明确提到,(b)出现在Javadoc的同一页中。我建议你应该读一下,而不是在这里浪费时间。我不知道iso是默认编码。UTF-8不适合我。谢谢这就是为什么JavaEE服务器仍然必须为UTF-8配置的原因,UTF-8是通用编码的最佳候选者(由于HTML标记,UTF-16对于亚洲脚本来说没有更紧凑)。