java中文解码_java中文转码解码

本文详细介绍了在HTTP请求中处理乱码的三种方法:全局设置响应编码、特定字符串转换编码以及配置过滤器。讨论了GET方式的编码传输解码过程,并提供了防止乱码的建议,包括在客户端和服务器端改变编码方式。同时,提到了通过修改Tomcat配置和在Servlet中手动处理编码解码来确保一致性。
摘要由CSDN通过智能技术生成

在Post方式中

//第一种:对于该方法全局有效

response.setContentType("text/html;charset=GBK");

response.setCharacterEncoding("GBK");

request.setCharacterEncoding("GBK");

//第二种:只对要转码的特定字符串有效

String name= request.getParameter("name");

String encodingString = new String(name.getBytes("ISO-8859-1"),"GBK");

System.out.println(encodingString);

//第三种:为该项目配置一个过滤器,对该项目全局有效

//过滤器请看CharacterEncodeingFilter类 和 web.xml里的配置

步骤:

1.编写CharacterEncodeingFilter类(详见例子)

2.在web.xml中配置该类的servlet信息和初始化信息

GET方式访问URL时参数的编解码工作:编码/传输/解码

基本过程:

public static void main(String args[]){

String tsptString=”中文”;

//1.编码(浏览器会按网页的编码方式进行编码)

String tempString=URLEncoder.encode(tsptString,”GBK”);

//2.传输

System.out.println(tempString);

//3.解码(由Tomcat容器按照默认编码方式自动解码)

String resultString=URLDecoder.decode(tempString,”ISO-8859-1”);

//查看

System.out.println(resultString);

}

上面的方式会因为编解码方式的不统一导致乱码,可以通过下面的方式来统一编码方式:

1.客户端指定网页编码

a)   页面指定GBK方式: submit.jsp教程 中 ,Servelet中Response.setContentType(“text/html; charset=GBK”);

b)   浏览器指定GBK方式:在页面上右击->编码->选择新编码->GBK(无法依靠用户为你的页面指定编码,但要预防用户通过这种方法改变你的编码方式

2.服务端改变编码

a)   改变Tomcat的默认编码方式:打开tomcat下的conf文件夹下的service.xml查找8080,添加 URIEncoding='GBK',如下: ,实例中此时第三步的默认编码方式就变成了GBK

b)   不使用TOMCAT的默认编码方式在服务器端处理参数,例如在Servlet中

protected void service(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {

String param=arg0.getParameter("param");

//UTF-8为指定的页面编码方式,ISO-8859-1为TOMCAT的默认解码方式(URIEncoding)

param =new String(param.getBytes("ISO-8859-1"),"UTF-8");

System.out.println(param);

//...

}

######这篇文章总结的很好:

http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html######回复

@季_苗 : ibe的网址,加载慢而已######回复

@季_苗 : 额,为毛我可以打开######你好,这个页面打不开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值