栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Spring MVC和Ajax返回字符串时编码错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Spring MVC和Ajax返回字符串时编码错误

发生这种情况是因为默认情况下,AJAX调用使用浏览器的默认编码(fe ANSI)。要对此进行覆盖,您需要执行以下操作:

jQuery的风格 - mime类型

$.ajax({    url:    "get_label",    mimeType:"text/html; charset=UTF-8",    success:    function(result)    {        alert(result);        $("#parameter_select label").text(result);    }});

香草JS 风格:

xhr.overrideMimeType("text/html; charset=UTF-8")

但是从另一方面来说,您需要确定该服务器还会返回适当的响应。为此,您需要检查以下内容:

  1. 通过在 server.xml中*连接器 设置添加 URIEncoding =“ UTF-8” 来添加对Web容器(即Tomcat)的UTF-8支持;检查此以获取更多信息。 ***
  2. 如果以前的更改没有帮助(尽管有帮助),请确保servlet响应的字符集也是 UTF-8

为此,您可以使用方法的显式调用:

@RequestMapping("get_label")public @ResponseBody String getLabel(HttpServletResponse response){    String str = "בדיקה";    //set encoding explicitly    response.setCharacterEncoding("UTF-8");    return str;}

或者,对于

@ResponseBody
Spring 3.1+ 似乎更可取:

@RequestMapping(value = "get_label", produces = "text/html; charset=UTF-8")public @ResponseBody String getLabel(HttpServletResponse response){    String str = "בדיקה";    return str;}

最后,我想澄清一下,为了正确处理UTF-8编码的AJAX调用,您必须确保:

  • 网络容器正确支持此功能
  • 响应的字符编码为UTF-8
  • AJAX请求字符编码也为UTF-8


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568781.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号