jboss在linux乱码,jboss get请求中文乱码问题

有的时候 我们在通过后台取前台的数据的时候会出现乱码

比如 String username = request.getParameter("username");时就会出现。

解决办法:如果你想单独解决这一个,那你就用

String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"GBK")

如果想统一解决永无后顾之忧(前提是尽量都采用一种方式,否则以前有用过上面的方式的回出现乱码):

如果用的服务器是jboss: 找到server\default\deploy\jbossweb-tomcat55.sar\server.xml  打开  找到

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true"/>

换成

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>

ok 重新发布,重启一下jboss 搞定。

如果用的是 tomcat服务器:同上,找到 Tomcat 6.0\conf\server.xml

< Connector port="8989" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

换成

connectionTimeout="20000"

redirectPort="8443" URIEncoding="GBK" />

当然这种修改服务器的方法虽然可以解决办法,但是这并不是最好的办法。如果能够用修改程序的办法来达到同样的效果的话 建议还是用修改程序的办法

< %@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>

< html>

< head>

< META http-equiv=Content-Type content="text/html; charset=gb2312">

< %request.setCharacterEncoding("gb2312");%>

servlet&jsp乱码问题

SERVLET

1、页面本身有中文的时候,一个要在写PrintWriter out = resp.getWriter();之前加这句话:

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

2、解决POST方式提交表单的中文乱码问题方法:

在获得第一个参数之前加以下语句:req.setCharacterEncoding("GBK");

3、解决GET方式提交表单的中文乱码问题方法:

修改conf目录下的server.xml 在Connector标签中(即修改8080端口的标签)中加一句话

URIEncoding="GBK"

JSP

加入以下两段代码则可解决大部分乱码问题:

< %@ page contentType="text/html;charset=GBK"%>

< %request.setCharacterEncoding("GBK");%>

解决Servlet中的中文乱码问题:

1、静态中文信息乱码

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

2、中文输入乱码

request.setCharacterEncoding("gbk");

String name =new String(request.getParamete("name").getBytes("iso-8859-1"));

servlet中输出流的默认字符编码是ISO-8859-1的

fileName=response.encodeURL(new String(fileName.getBytes(),"ISO8859_1"));//转码

运行后结果如下:

匿名 回答:2 人气:3 解决时间:2010-04-22 22:28

满意答案好评率:0% 楼上的说法是对的。。但是写的不对

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

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

评价答案

您已经评价过!好:0 您已经评价过!不好:0 您已经评价过!原创:0 您已经评价过!非原创:0 废人 回答采纳率:36.7% 2010-04-22 21:06 满意答案好评率:0% 首先你要弄清楚  如果是用url传的话  url的传递是用编码 ISO-8859-1  而你的编码不是这个

所以你去到的值是乱码,你要去转码就可以了

比如常用的方式

request.getParameter("name")=new String(iso.getBytes("ISO-8859-1"),"UTF-8");

public static String toChi(String input) {     try {     //byte[] bytes = input.getBytes("ISO8859-1");     //return new String(bytes);         //下面两行针对tomcat5。5 配置 encode为utf-8时候         byte[] bytes = input.getBytes("UTF-8");         return new String((new String(bytes)).getBytes("ISO-8859-1"), "gb2312");     }catch(Exception ex) {     }     return null;     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值