我想通过http get request发送を伴う出力となって来后端java代码。 我的来电网址为http://localhost:8080/test/getID?id=%E3%82%92%E4%BC%B4%E3%81%86%E5%87%BA%E5%8A%9B%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6
Java代码:
@RequestMapping(value = "/getCaseId")
public ModelAndView showCaseId(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
String msg = request.getParameter("id");
System.out.println("URL:"+msg);
return new ModelAndView("showID", "idList", null);
}
上面的代码打印网址:ãä¼'ãåºåãããããããããã€。 那么我需要做些什么改变才能得到我从前端传递的确切日文文本。
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试将msg
行更改为:
String msg = new String(
request.getParameter("id").getBytes(StandardCharsets.ISO_8859_1),
StandardCharsets.UTF_8
);
如果这样可行,则意味着您的应用程序服务器(Tomcat?jetty?)未正确配置以处理URL中的UTF-8。
答案 2 :(得分:0)
问题是提交的查询字符串在进入服务器端脚本的过程中变得很残缺,因为getParameter()使用的是ISO-8559-1而不是UTF-8。
所以我修改了我的代码如下,现在它的工作
@RequestMapping(value = "/getCaseId")
public ModelAndView showCaseId(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
String msg = new String(request.getParameter("id").getBytes("iso-8859-1"), "UTF-8")
System.out.println("URL:"+msg);
return new ModelAndView("showID", "idList", null);
}