【问题标题】:How to send special characters in request to servlets如何将请求中的特殊字符发送到 servlet
【发布时间】:2012-08-11 03:58:31
【问题描述】:

我正在使用一个 jQuery ajax 命令,它有以下数据:

$.ajax({
type:"POST",
 ...
 data:"e=f_s&es="+JSON.stringify(email)+"&fr="+str
 ...
})

其中(电子邮件)可以包含特殊字符,例如可以是字符串:

!#$%'&+-/=?^`*{|}~ch!#$%'/=?*^`{|}@mail.com

之所以允许此类字符,是基于以下question.

问题是,在服务器(Java EE 应用程序)的某个时刻,它出现了问题。特殊字符不显示不同请求参数的边界。例如它正在考虑:

'/

作为参数。
我想我需要转义字符? (如果是的话如何?)

我应该怎么做才能将这样的字符串从 javascript 发送到 java

【问题讨论】:

  • 我也遇到过类似的问题,在这里查看我的回答:stackoverflow.com/a/34345900/1864614
  • 还有在未来,java和javascript有很大的不同;这个问题与java无关。只是要记住的事情;很高兴你得到答案

标签: java javascript jakarta-ee servlets http-request-parameters


【解决方案1】:

使用encodeURIComponent:

encodeURIComponent("!#$%'&+-/=?^`*{|}~ch!#$%'/=?*^`{|}@mail.com")

返回:

"!%23%24%25'%26%2B-%2F%3D%3F%5E%60*%7B%7C%7D~ch!%23%24%25'%2F%3D%3F*%5E%60%7B%7C%7D%40mail.com"

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 2017-06-19
    • 2010-10-01
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多