`

response 设置成 utf-8后中文乱码

阅读更多
public static void outputJSONResult(String result, HttpServletResponse response) {
		try {
			response.setHeader("ContentType", "text/json");
			response.setCharacterEncoding("utf-8");
			PrintWriter pw = response.getWriter();
			pw.write(result);
			pw.flush();
			pw.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

 上面代码是异步传输JSON数据到JS中,英文没有问题,中文就显示乱码了,将response.setCharacterEncoding("utf-8");设置成gb2312 或gbk 就可以了。

 

如下解释:

 

UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。

GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:

GBK、GB2312--Unicode--UTF8

UTF8--Unicode--GBK、GB2312

对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。

1
0
分享到:
评论

相关推荐

    asp.net中文乱码:asp.net(C#)中文乱码问题

    asp.net默认的编码是UTF-8 js文件里的编码也是UTF-8 当你要在aspx页面上进行传中文参数时会出现乱码 asp.net中文乱码:asp.net(C#)中文乱码问题 <-----request.aspx--接收参数页-----> <----response.aspx--传送...

    开发wap注意事项---wml中文乱码

    wml中文乱码及wml按钮设置。 在servlet里面的doget和dopost方法设置 request.setCharacterEncoding("UTF-8"); response.setContentType(Const.CONTENT_TYPE);//Const.CONTENT_TYPE为:text/vnd.wap.wml;charset=...

    selectersky gb2312和utf-8文件编码互换工具 v1.05

    Response.CharSet = "utf-8" GB2312编码后的文件: session.codepage = 936 Response.CharSet = "gb2312" 如果还是不行,请确认你的转换操作是否正确或联系我 selectersky@selectersky.cn 更新记录 ----------...

    asp 读取 utf-8格式文档并生成utf-8格式文档的乱码问题

    今天在对搜索吧的程序进行utf-8修正时,发现生成的utf-8格式文档存在着乱码,原来文件 create_html.asp代码如下: 代码如下:<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%> <% set objrs=server...

    乱码问题解决方案

    一、有关中文乱码: mysql部分: url配置:jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=utf8 jdbc:mysql://localhost:3306/XXX?useUnicode=true&...charset=utf-8" %/>

    java 的乱码教程

    首先,说说JSP/Servlet中的几个编码...charset=UTF-8"、request.setCharacterEncoding("UTF- 8")和response.setCharacterEncoding("UTF-8"),其中前两个只能用于JSP中,而后两个可以用于JSP和 Servlet中。 。。。。。

    proxool-0.9.1.jar

    proxool-0.9.1.jar包是一个数据库连接池包,最新版解决前几个版本里在二次关闭一个rs集的时候警告等一些bug。...解决了在utf-8编码下的中文乱码问题。 如果这个不符合大家要求,可以自己去更改对应编码。

    xmlhttp 乱码 比较完整的解决方法 (UTF8,GB2312 编码 解码)

    用XMLHTTP Post Form时的表单乱码有两方面的原因——Post表单数据时中文乱码;服务器Response被XMLHTTP不正确编码引起的乱码。换句话说,本文主要解决两个问题——怎样正确Post中文内容&怎样正确显示得到的中文...

    ajax乱码解决汇总

    RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码...

    ajax中文乱码问题解决方案

    而ajax传输数据的时候用的是utf-8 ,还有对ajax get方法时最好escape 或urlcode, 代码如下: <%@ page contenttype=”text/html;charset=gb2312%> 如果是用servlet就加 代码如下: response.setcontenttype(...

    response响应数据变成???&使用jquery发送带中文参数数据的get请求得到响应数据乱码解决过程

    request请求数据设置编码使用:request.setCharacterEncoding(“UTF-8”); response响应数据设置编码使用:response.setContentType(“text/html; charset=UTF-8”);点击按钮,发送请求,响应回来的数据还是显示”???...

    解决Servlet中文乱码问题.docx

    第一句目的是为了指定浏览器以UTF-8码表打开服务器发出的数据 第二句目的是设置response使用的码表,控制response以UTF-8码表向浏览器写入数据(必须写在方法中第一行)

    web程序开发中的URL乱码解决方案

    在服务器端/后台/后台程序中设置请求流和响应流的编码方式和页面上的编码方式一致:request().setCharacterEncoding("utf-8");response().setCharacterEncoding("ut f-8");response().setContentType("text/html;...

    android和服务器的URLEncodedUtils乱码编码问题的解决方案

    在android开发中我们常常遇到与到乱码问题,遇到乱码问题首先我们要先检查两端编码格式是否一致! 一般我们提交数据用get...response.setCharacterEncoding(“UTF-8”);来确定响应的编码格式。这样一般是不会出现乱码,

    js调用AJAX时Get和post的乱码解决方法

    在使用”get”时,抓取的页面最后加上编码类型 代码如下: <% 服务器端:... charset=utf-8″ pageencoding=”utf-8″%> response.expires = -9999 response.addheader “pragma”,”no-cache” res

    windows环境下Mysql中文乱码问题解决方法

    最近开发项目中又重新拿起了Mysql,在搭建环境的时候遇到了中文乱码问题。...设置里面的latin1为utf8 3、另外如果在Java端通信数据的时候发生了乱码的话就response.setCharacterEncoding(“utf-8”); 您

    asp中response.write(中文)或者js中文乱码问题

    我的所有网页编码是utf-8,当打开浏览器不对数据库插入数据时(main.asp),直接读取数据进行浏览(showAll.asp),一切正常;但是当在main.asp通过ajax把数据插入到access表时,再去浏览showAll.asp页面时,凡是...

    Extjs Ajax 乱码问题解决方案

    服务器就会将该页面用UTF-8的编码输出,而如果页面中没有显示声明,在服务器中都有一个默认的字符编码,比如GB2312,针对没有声明的文件,他会用默认编码输出,这个时候,如果页面输出又是UTF-8,这样就会出现乱码。...

    解决Python发送Http请求时,中文乱码的问题

    msg.encode(‘utf-8’)是解决中文乱码问题。 quote():假如URL的 name 或者 value 值中有『&』、『%』或者『=』等符号,就会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码,quote()就是对参数字符串中...

Global site tag (gtag.js) - Google Analytics