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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中 用ajax发出请求返回JOSN格式数据,中文乱码问题相关的知识,希望对你有一定的参考价值。

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"); 从数据库取回的数据,中文始终是一堆问号。。。 求高手帮忙解决

参考技术A 那就是数据库的问题了,一般在建库的时候会给数据库设置编码格式,像这样
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可以的话,最好数据库重建一下再试试,应该可以。
再看看别人怎么说的。

Ajax 请求日期数据格式不对

我用Ajax请求查询后台数据,其中有一个字段是DateTime类型,用hibernate注解@Temporal(TemporalType.TIMESTAMP) 也是默认格式("yyyy-MM-dd HH:mm:ss E"),数据在后台输出完全没错,但是到了ajax请求后返回时就变为long型。很奇怪的问题。哪位大神知道

参考技术A 在js里用标签格式化一下
<fmt:formatDate value='$vo.updateDate' pattern='yyyy-mm-dd HH:mm:ss'/>追问

js中回调的是一个long形式的字符串,用格式化标签无法识别该字符串,因为格式化标签裏必须是日期类型的

以上是关于Java中 用ajax发出请求返回JOSN格式数据,中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

ajax中用josnp接收josn数据

html能过JS获取PHP中的值?

ajax请求接口里的数据,然后显示在页面里

ssm框架 怎么用ajax查询从数据库读取数据 返回json格式

用flash请求一个http请求,返回 json结构的数据,用火狐访问没问题net::ERR_INCOMPLETE_CHUNKED_ENCODING

扒一扒 EventServiceProvider 源代码