以正确的格式从Querystring获取unicode值

时间:2011-10-25 05:10:26

标签: java jsp

我是JSP编程的初学者,我想知道哪些 代码(程序)我必须编写以从queryString

获取Unicode值

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

要获得unicode值,此代码可能会对您有所帮助。

  

if(request.getCharacterEncoding()== null)
   request.setCharacterEncoding( “UTF-8”);

有关详细信息,请参阅:
Click Here

答案 1 :(得分:0)

HttpServletRequest#getQueryString()返回URL编码的查询字符串。您宁愿使用getParameter()getParameterValues()getParameterMap()方法分别检索单个参数,多个参数或整个参数映射。使用这些方法,容器将自动对您的参数名称和值进行URL解码。在JSP内部,这些值分别由${param.name}${paramValues.name}${pageContext.request.parameterMap}提供。

如果您确实坚持解析和摆弄原始查询字符串本身有一些非明显的原因,那么您必须将它们拆分为&=以获取个人参数和name = value部分分别最后用URL解码每个部分。可以使用String#split()进行拆分,并且可以使用URLDecoder#decode()进行网址解码。

这是一个启动示例:

String charset = request.getCharacterEncoding();
if (charset == null) charset = "UTF-8";
String queryString = request.getQueryString();

for (String parameter : queryString.split("&")) {
    String[] parts = parameter.split("=");
    String name = URLDecoder.decode(parts[0], charset);
    String value = URLDecoder.decode(parts[1], charset);
    // ...
}

默认字符集应至少与您用于返回HTTP响应的相同。例如,当它是JSP时,它应该与您在pageEncoding中指定的相同:

<%@page pageEncoding="UTF-8" %>