中文乱码处理

来源:互联网 发布:vb循环语句 编辑:程序博客网 时间:2024/05/16 19:45
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>  <head>    <title>messyCode.html</title>    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="this is my page">    <meta http-equiv="content-type" content="text/html; charset=utf-8">  </head>  <body>    <h2>乱码测试</h2>             表单:(post方式)    <form action="/doWeb/MessyCodeServlet" method="post">    textAboutChinese:<input type="text" name="content"/>    <input type="submit" value="submit">    </form>    <br/>     表单:(get方式)    <form action="/doWeb/MessyCodeServlet" method="post">    textAboutChinese:<input type="text" name="content"/>    <input type="submit" value="submit">    </form>  <a href="/doWeb/MessyCodeServlet?content='撒旦法斯蒂芬'">连接测试</a>  </body></html>

以上是测试的html页面,下面是对应的post get url方式提交的中文乱码处理:

//post方式提交://此时在console下显示的内容为://获取到的内容:é˜¿æ–¯é¡¿å  【乱码了】/* 我们通过表单的提交将input标签中的内容从messyCode.html中提交到MessyCodeServlet中来,在html中:可以通过查看编码知道【编码形式:utf-8】而我们通过post方式是将内容封装到请求体,然后发给Web服务器,但是服务器却是以ISO-8859-1的形式接受的,所以就会产生乱码的现象,因此让服务器段以utf-8接受即可。通过查看HTTP-Watch得到:POST DATA:content阿斯顿发44*/request.setCharacterEncoding("utf-8");//需要在请求被使用之前,对请求体进行修正String content = request.getParameter("content");System.out.println("处理后的内容:"+content);
//get方式提交://获取的内容:没有进过处理获取到的内容:阿斯顿å//get方式是通过请求行传送的:content=%E5%9C%A3%E8%BE%BE%E8%8F%B2/* 此时利用之前说的正对post方式的方式就没有用了,因为setCharacterEncoding();是针对请求体的...但是不变的始终是字节码.那么我们就可以通过字节来构建我们需要的形式。其实这个方式应该来说是可以针对post和get的两种情况的,从byte得到的    */content=new String(content.getBytes("ISO-8859-1"),"utf-8");System.out.println("处理后的内容:"+content);/* 没有进过处理获取到的内容:阿斯顿发处理后的内容:阿斯顿发 */
//针对 a标签提交的//除了表单的post方式是可以以post的方式提交的,其他的请求都应该是get的形式/*url:http://localhost:8080/doWeb/MessyCodeServlet?content=%27%E6%92%92%E6%97%A6%E6%B3%95%E6%96%AF%E8%92%82%E8%8A%AC%27 使用处理post的处理方式: 处理后的内容:'撒旦法斯蒂芬' 使用get的处理方式: 没有进过处理获取到的内容:'撒旦法斯蒂芬'处理后的内容:'撒旦法斯蒂芬' */content=new String(content.getBytes("ISO-8859-1"),"utf-8");System.out.println("处理后的内容:"+content);
/*  总结:其实有时候处理乱码会变得特别麻烦,不管怎么弄还是乱码,这个时候就要分清楚这个码到底是在哪里乱的【PS:乱码 -> messyCode 学了个单词】  */



原创粉丝点击