我有一个Servlet,它处理来自JSP表单的QueryString
。
当JSP将信息发送到Servlet时,它会将查询放在URL上,如下所示:
https://www.mywebsite.com/search?query=Barcelona
我以这种方式接收Servlet内部的数据:
String query = request.getQueryString();
// query will receive "Barcelona"
一切正常。当字符串包含俄语、汉语、阿拉伯语等其他编码的字符时,问题就来了。所以,如果我把URL放成这样
https://www.mywebsite.com/search?query=Медеуский
我将在查询变量中收到以下文本:
String query = request.getQueryString();
// query will receive " %D0%9C%D0%B5%D0%B4%D0%B5%D1%83%D1%81%D0%BA%D0%B8%D0%B9"
那么,我该如何避免逃避转换呢?
谢谢!
您可以使用URLDecoder.decode(request.getQueryString(), "UTF-8")
或
- StringunicodeQuery=新字符串(query.getBytes((,StandardCharsets.UTF_8(
- String unicodeQuery=新字符串(query.getBytes("ISO_8859_1"(,StandardCharsets.UTF_8(
- String unicodeQuery=new String(query.getBytes(Charset.defaultCharset(((,StandardCharsets.UTF_8(