后台代码:
Map<String, String> items = new HashMap<String,String>();
items.put("name", "李连杰");
items.put("sex", "男");
JSONObject jo = JSONObject.fromObject(items);
try {
        PrintWriter out = response.getWriter();
        response.setContentType("text/json; charset=UTF-8");
        out.write(jo.toString());
        out.flush();
        out.close();
} catch (IOException e) {
        e.printStackTrace();
}
前台代码:
$.ajax({
        type : "post",
        url : "salary/queryFormulaValueById.action",
        data : "formulaID=" + formula,
        dataType:"json",
        success : function(items) {
                alert(items.name);
        },
        beforeSend : function() {
                $("#formulamsg").html("查询中...");
        },
        error : function(XMLHttpRequest, textStatus, errorThrown) {
                alert("内部错误,请重新操作!");
        }
});
页面头信息:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">success函数里面得到的items.name老是乱码(全是问号),实在无法解决,哪位大神能解决?不胜感激!!JavaAjaxJSON

解决方案 »

  1.   

    一步步排查只有:
    1. html页面的编码看起来是没有问题的(还应该看一看文本文件本身的编码是不是UTF-8编码格式的)
    2. 在servlet里把request.setCharacterEncoding也设置一下
    3. 确认服务器的编译环境没有问题(比如源文件是UTF-8格式编码的,但是服务器编译的时候指定以GBK方式编译,这个可能性比较小,一般服务器都有默认设置)然后,就没有然后了。编码问题一般都不会是什么大问题!
      

  2.   

    jQuery的AJAX使用的是UTF-8编码