web程序中文乱码解决方案【JAVAEE基础】

16.程序乱码解决方案

1.乱码经常出现的位置:

    *数据“展示”过程中的乱码。
    *数据“传递”过程中的乱码。
    *数据“保存”过程中的乱码。

2.数据展示过程中的乱码:
-最终显示到网页上的数据出现中文乱码。

  第一种情况:执行java程序之后,java程序负责向浏览器响应的时候出现中文乱码:
    -解决:设置响应的内容类型,以及对应的字符编码方式。
	 response.setContentType("text/html;charset=UTF-8");

  第二种情况:没有执行java程序,直接访问html页面,出现中文乱码:
     * <meta content="text/html;charset=UTF-8">/<meta charset="UTF-8">

3.数据传递过程中的乱码:
【产生原因】
-将数据从浏览器发送给服务器的时候,服务器收到的数据是乱码。
-任何国家的文字,数据从浏览器发送给服务器的时候,都会采用ISO-8859-1编码。
-ISO-8859-1是国际标准码,不支持中文编码,兼容ASCII码,又被称为latin1编码
-浏览器发送数据给服务器:dname=%E5%B8…(ISO-8859-1编码),服务器不知道这段编码之前是什么文字。

   第一种解决方案:万能方式,既能够解决POST请求乱码,又能解决GET请求乱码。
        先将服务器中接收到数据采用ISO-8859-1编码方式解码
	    byte[] bytes=dname.getBytes("ISO-8859-1");
	    再给定一种支持简体中文的编码方式重新编码组装。【和浏览器的编码方式编码方式相同】
	    String s=new String(bytes,"UTF-8");
        	

   第二种解决方案【只适合POST请求】
        request.setCharacterEncoding("UTF-8");//对请求体中的数据采用指定方式进行编码【POST请求】
     	String dname=request.getParameter("dname");

   第三种解决方案【只适合GET请求】
         修改CATALINA_HOME/conf/server.xml文件
	     在<Connector />中添加 URIEncoding="UTF-8"

4.数据保存过程中的乱码
-最终保存到数据库表中的时候。数据出现乱码。

    第一种情况:在保存之前,数据本身就是乱码,保存到数据库中的时候一定是乱码。

    第二种情况:保存之前不是乱码,但是数据库本身不支持简体中文,保存之后出现乱码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值