永发信息网

Java中 用ajax发出请求返回JOSN格式数据,中文乱码问题

答案:2  悬赏:80  手机版
解决时间 2021-01-28 21:45
  • 提问者网友:了了无期
  • 2021-01-28 10:38
servlet代码
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String operType = req.getParameter("operType");
if(operType!=null&&"loadAddress".equals(operType)){
doLoadAdress(req,resp);
}else{
SxtLog4j.logger.debug("AdressController.doLoadAdress(方法不存在)"+operType);
}

}

private void doLoadAdress(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String code = req.getParameter("code");
String type = req.getParameter("type");

AddressDao addressDao = new AddressDao();
Address address = new Address();

address.setCode(code);
address.setType(type);

List<Address> addressList = addressDao.doQueryAll(address);

JSONArray jsonArray = new JSONArray(addressList);
resp.getWriter().print(jsonArray.toString());
System.out.println("AddressController.doLoadAdress()"+jsonArray.toString());
}

页面头代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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">
<title>Insert title here</title>
<head>
使用post方法发送的数据,
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
从数据库取回的数据,中文始终是一堆问号。。。 求高手帮忙解决
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-01-28 11:09
数据库也是乱码吗?
注意:数据库编码格式和页面和程序的编码格式要统一
全部回答
  • 1楼网友:不如潦草
  • 2021-01-28 12:05
那就是数据库的问题了,一般在建库的时候会给数据库设置编码格式,像这样 CREATE TABLE d_product ( id int(12) NOT NULL auto_increment, product_name varchar(100) NOT NULL, description varchar(100) default NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; //主要是这里设置编码 ,如果LZ可以的话,最好数据库重建一下再试试,应该可以。 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯