「java返回乱码」java中乱码恢复

博主:adminadmin 2023-03-19 15:02:10 399

本篇文章给大家谈谈java返回乱码,以及java中乱码恢复对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java telnet返回乱码问题

终端类型不对应,或编码不对应

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

java的HttpClient请求,返回的数据部分乱码,请大侠指点呀!

可以把你的这段代码简化一下

 ins = method.getResponseBodyAsStream();

 byte[] b = new byte[1024];

 int r_len = 0;

 while ((r_len = ins.read(b))  0)

  {

       result.append(new String(b, 0, r_len, method.getResponseCharSet()));

  }

替换为:

byte[] ba = method.getResponseBody();

String str= new String(ba,"UTF-8"); //得到指定编码格式的字符串

这里的str就是你的返回值。这段代码我使用过,可以解决乱码问题

java get 请求 返回值乱码

您好,提问者:

    如果包含中文,不建议使用get方式,可采用post提交方式。

//可以采用加密、解码的方式进行加码提交,例如:

//加码

String str = java.net.URLEncoder.encode("中国","UTF-8");

//解码

String jiema = java.net.URLDecoder.decode(str,"UTF-8");

Javaweb返回给Android客户端json中文字符乱码

JavaWeb的各种中文乱码终极解决方法:

一、Servlet输出乱码

1.

用servlet.getOutStream字节流输出中文,假设要输出的是String

str

="测试中文"。

1.1

若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK。而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题。

1.1

若服务器输出时用了,

out.write(str.getBytes("utf-8"))。而本地默认编码是GBK时(比例在中国),那么用浏览器打开时就会乱码。因为服务器发送过来的是utf-8的1010数据,而客户端浏览器用了gbk来解码,两者编码不统一,肯定是乱码。当然,你也可以自己将客户端浏览器的编码手工调用下(IE菜单是:查询View-编码encoding-utf-8),但是这种操作很烂,最好由服务器输出响应头告诉,浏览器用哪种编码来解码。所以要在服务器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),当然也可直接用简单的response.setContentType("text/hmtl;charset=utf-8")。两种的操作是一样一样的。

2.

用servlet.getWirter字符流输出中文,假设要输出的是String

str

="测试中文乱码"。

2.1

若写成out.print(str)输出时,客户端浏览器显示的将全是多个?????的字符,代表在编码表中肯定就找不到相应的字符来显示。原因是:servlet.getWriter()得到的字符输出流,默认对字符的输出是采用ISO-8859-1,而ISO-8859-1肯定是不支持中文的。所以肯定要首先要做的第一件事:是要将服务器对象输出字符能支持中文的。其次服务器向客户端写回的响应头要告诉客户端是用了哪种编码表进行编码的。而实现这两个需求,只需要response.setContentType("text/hmtl;charset=utf-8")。就搞定了。特别注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut

out

=

response.getWriter()代码的前面,否则只是有告诉客户端用什么码表编码的功能,而服务器端还是用ISO-8859-1编码了。再特别提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因为这两种response的响应输出字节流与字符流是冲突的,只能用其一。

二、Servlet文件下载,中文乱码情况。

关键是下载时响应头

content-disposition中attachment;filename=文件名。这个文件名filename不能是含有中文字符串的,要用URLEncoding编码进行编码,才能进行进行http的传输。

三、Servlet的response增加addCookie,cookie中value的中文码问题解决方法。若想将cookie中存放中文的值,必须用Base64编码后,发给客户浏览器端进入存储。而下次客户端浏览访问是带回来的cookie中的值,是经过Base64编码的,所以需要用Base64解码即可。

Base64编码主要是解决将特殊字符进行重新编码,编码成a-b、A-B、0-9、+与/,字符52,10个数字与一个+,一个/

共64个字符。它的原理是将原来3个字节的内容编码成4个字节。主要是取字节的6位后,在前面补00组成一个新的字节。所以这样原来的3个字节共24,被编码成4个字节32位了。

四、获取请求参数乱码

GET方式的乱码:

如a

href=”/demo5/servlet/RD2?name=中国”CN/a,直接用request.getParameter得到的字符串strCN将会乱码,这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解码即可。new

String(strCn.getBytes(“ISO-8859-1”),“UTF-8”);

java 接口返回出现乱码

你可也在Web.xml里面配置一下这个

!--解决中文乱码 --

filter

filter-nameSpringEncoding/filter-name

filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class

init-param

param-nameencoding/param-name

param-valueUTF-8/param-value

/init-param

/filter

filter-mapping

filter-nameSpringEncoding/filter-name

url-pattern/*/url-pattern

/filter-mapping

!--解决中文乱码 --

关于java返回乱码和java中乱码恢复的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。