java - 获取参数特殊字符

标签 java special-characters url-parameters

我正在尝试在 jee 中获取 url 参数。 所以我有这样的网址:

http://MySite/MySite.jsp?page=recherche&msg=toto

首先我尝试使用:request.getParameter("msg").toString(); 它工作得很好,但如果我尝试搜索“c++”,方法“getParameter()”返回“c”而不是“c++”,我明白。

所以我尝试了另一件事。我获取当前 URL 并解析它以获取消息的值:

String msg[]= request.getQueryString().split("msg=");
message=msg[1].toString();

它现在适用于研究“c++”,但现在我无法搜索重音。我能做什么?

编辑1

我在网址中对消息进行编码

String urlString=Utils.encodeUrl(request.getParameter("msg"));

因此对于 URL:http://MySite/MySite.jsp?page=recherche&msg=c++

我有这个编码的URL:http://MySite/MySite.jsp?page=recherche&msg=c%2B%2B

当我需要它时,我会解码 URL 的消息

String decodedUrl = URLDecoder.decode(url, "ISO-8859-1");

谢谢大家

最佳答案

您通过“get”方法发送的任何内容都会作为 URL 的一部分,需要对其进行 urlencode 编码才能有效,以防它包含至少一个保留字符。因此,任何字符在发送之前都需要进行编码。

为了发送c++,您必须发送c%2B%2B。这将在服务器端得到正确解释。

您可以检查以下一些引用:

http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

现在的问题是,如何以及在哪里生成 URL?根据语言,您将需要使用正确的方法来编码字符串。

关于java - 获取参数特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20355769/

相关文章:

java - 如何在java中实现将泛型类型数组转换为泛型类型二维数组的函数?

java - 一个类的其他实例是否能够访问另一个类中的静态变量?

java - OAuth2 基于角色的身份验证

java - JavaFX TextField 中是否有多个插入符?

dart - 如何在dart上发出HTTP请求并传递参数

regex - 用字 "%"替换符号 "Percent"

regex - PowerShell - 正则表达式获取两个字符串之间的字符串

linux - $*在shell脚本中是什么意思

javascript - 在 JavaScript 中将来自服务器的数据从一个页面传递到另一个页面,而不使用表单

javascript - 第一个 url 参数与所有 url 地址混淆