【问题标题】:error encoding accent with spring and getjsonspring 和 getjson 错误编码重音
【发布时间】:2014-03-02 00:12:18
【问题描述】:

我想在变量 mois 中发送参数:“Février”,问题是当我发送包含 é 之类的重音的参数时,我通过 @ResponseBody 在类 java 中获得其他值:Février 我的网址是: http://othman-pc.com:8080/COSUMAR_WebAdmin/moisTest.html?mois=Février

问题出在控制台 java 中:System.out.println("Mois :"+ mois);

我得到:

Mois :Février

获取json:

$.getJSON("moisTest.html", {mois: $(this).val()}, function(j) { if (j === false) { alert("good")     });

弹簧@ResponseBody

@RequestMapping(value = "/moisTest.html",method = RequestMethod.GET)
  public @ResponseBody String moisTest(@RequestParam(value ="mois") String mois){
             System.out.println("Mois :"+ mois);

            return "false";}

我的 JSP:

<%@ page  contentType="text/html; charset=ISO-8859-1" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib  uri="http://www.springframework.org/tags/form" prefix="form" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

标题雕像:

Request URL:http://localhost:8080/COSUMAR_WebAdmin/moisTest.html?mois=F%C3%A9vrier
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,ar;q=0.2
Cache-Control:max-age=0
Connection:keep-alive
Content-Type:application/x-www-form-urlencoded
Cookie:JSESSIONID=zMFHDOspJtUYA+Eg4hidb+C1.undefined; ASP.NET_SessionId=ohyxckjs40vkg121wnnvygwn; fcspersistslider2=1; submenuheader=0c; PHPSESSID=vak58e1nha6mg51prp4ke0l3f3; JSESSIONID=29a2a59a435d5e9fe335568f602d; treeForm_tree-hi=treeForm:tree:resources:JDBC:connectionPoolResources:evpsPool
Host:localhost:8080
Referer:http://localhost:8080/COSUMAR_WebAdmin/upload.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
X-Requested-With:XMLHttpRequest
Query String Parametersview sourceview URL encoded
mois:Février
Response Headersview source
Cache-Control:no-cache
Cache-Control:no-store
Content-Length:5
Content-Type:application/json
Date:Sat, 01 Mar 2014 15:08:05 GMT
Expires:Thu, 01 Jan 1970 00:00:00 GMT
Pragma:no-cache
Server:Apache-Coyote/1.1    

【问题讨论】:

    标签: jquery json spring-mvc


    【解决方案1】:

    这是运行在tomcat 上的应用程序的常见问题。要解决此打开的server.xml tomcat 配置,请使用您的端口(例如 8080)找到 &lt;Connector&gt; 标记并添加以下内容:URIEncoding="UTF-8"

    服务器配置可以在项目资源管理器的 server 文件夹或“Servers”文件夹中找到(如果您使用 eclipse)

    【讨论】:

    • 非常感谢您的回复,但我使用的是 Jboos 7.1.1,我找不到 server.xml,它与文件 Standalone.xml 中的 jboos 7 配置不同。你能帮我取悦吗
    • 抱歉,我没有与 JBoss 合作。尝试搜索“Jboss connector utf-8”(也许这会对您有所帮助:stackoverflow.com/questions/10226018/jboss-encoding-utf-8
    • 谢谢你sooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo一大行hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh我解决了我的问题我用tomcat更改jboos并在server.xml中添加配置我成功获得了带有口音的好caracetere谢谢你uuuuuuuuuuuuuu
    • 嗨!感谢@TheUser518469 的建议,它也解决了我的问题……但是你能向我们解释一下这个解决方案吗?我的意思是为什么自定义jboss的standalone.xml(或tomcat的server.xml)是解决这个问题的方法。我正在处理一个现有项目,修改服务器可能“最终”会导致一些问题......谢谢
    • 嗨,javaxiss。我相信这个问题与您的代码无关,但与服务器配置有关。什么是网络服务器?它是一个侦听传入请求并将其传输到您的软件的程序。这就像一个总机接线员 (en.wikipedia.org/wiki/Switchboard_operator):你拿起电话说:“我想和 通话”,总机接线员将你与被请求的人联系起来。但是,如果接线员只懂英语而你用俄语说话,可能会导致一些问题。在这种情况下,您应该指定:“请给我说俄语的接线员”。
    猜你喜欢
    • 1970-01-01
    • 2013-12-31
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多