jQuery的:为JSON响应为utf8编码设置(jQuery: Set encoding for

2019-09-17 09:27发布

我得到的JSON我的jQuery的响应。 逻辑工作正常,但我不能让他正确的编码数据(如UAO)。

我搜索,发现这对SO问题,这表明该改变getJSON正常AJAX调用。 我这样做,并添加了setContentType选项,不过,我只要一出现友达光电越来越怪异迹象。

如何解决任何想法?

$(function() {
    $("#cnAntragsteller").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "http://localhost/api",
                dataType: "jsonp", 
                data: {
                    search: request.term
                },
                success: function(data) {
                    response($.map(data.persons, function(item) {
                        return {
                            label: item.cn + " (PN: " + item.imPersonalNumber + ")",
                            value: item.cn,
                            pn: item.imPersonalNumber,
                            cn: item.cn,
                            cc: item.imCostCenter,
                            jb: item.imJobTitle,
                            jbd: item.imJobTitleDescription
                        }
                    }));
                }
            });
        },

        minLength: 0,
        select: function(event, ui) {
            $("#pnAntragsteller").val(ui.item.pn);
            $("#jbAntragsteller").val(ui.item.jb);
            $("#jbdAntragsteller").val(ui.item.jbd);
            $("#ouKostenstelle").val(ui.item.cc);


            $.ajax({
                url: "http://localhost/api",
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                data: {
                    pn: ui.item.pn
                },
                success: function(data) {
                    $("#cnLeiter").val(data.cn);
                }
            });
            }
        })
})

响应头(第一报头不显示数据,它只是重定向到输出):

Content-Length:0
Date:Tue, 22 May 2012 06:13:41 GMT
Location:http://localhost/api/redirection
Server:Apache-Coyote/1.1

Content-Length:177
Content-Type:text/html
Date:Tue, 22 May 2012 06:13:41 GMT
Expires:0
Server:Apache-Coyote/1.1

注意:这些只是响应报头,执行请求头也包含重要信息?

Answer 1:

虽然好像你已经解决了这个问题,这可能是件好事指出两点:

  1. jQuery的getJSON是默认使用UTF-8。 你给的意思在页面上公认的答案是,如果你想比UTF-8等一些编码,你可以使用$.ajax() 事实上,该网页上的另一个回答说,即使你使用getJSON ,您仍可以使用$.ajaxSetup设置编码。

  2. 你可能想改变你的JSP头的contentType到'application/json; charset=utf-8' 'application/json; charset=utf-8' ,因为这是你的jQuery方期待的。 它总是好让事情保持一致。



Answer 2:

解决它槽添加JSP头(我不知道JSP,所以我花了一些谷歌上搜索)。 页面上的进口标签添加这解决了这个问题:

<%@ page import="someEngine"  contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%>


文章来源: jQuery: Set encoding for json response to utf8