中文乱码处理

<!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 学了个单词】 
 */



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值