javaweb中的中文乱码处理如何处理?

1.为什么会出现乱码?
B/S 应用程序是一种请求相应模式,浏览器默认的语言编码是操作系统的编码,而 Tomcat 默认的是 ISO-8859-1。
2.何时会出现中文乱码?
两方面:
请求(浏览器对服务器说话)request.getParamenter得到客户端请求参数
相应(服务器对浏览器说话):
表现一:PrintWriter out = response.getWriter();
out.write(“你好,世界!”);
表现二:jsp中的中文乱码,因为jsp本质上还是servlet,它的所有内容是通过out.write向客户端发送的.
那么,到底如何解决呢?肯定是让他们使用统一的编码集.(可以理解为2个不同国家的人说话时用同一种语言,例如:English)

  1. ISO-8859-1 美国人标准,很多软件默认使用此编码,如 tomcat,mysql 等。
  2. GBK(gb2312)中国人标准.
  3. UTF-8 因内部使用 unicode 编码。一般为 16 位,而 unicode 为 32
    位,支持地球已知的所有语言,我们的首选。
    解决方法:
    解决方法一:硬编码:
    String name = new String(x.getBytes(“ISO-8859-1”), “UTF-8”);
    优点:对 get,post 请求都有效;
    缺点:当请求字段较多时,不利于处理;
    解决方法二:只对 post 有效
    request.setCharacterEncoding(“UTF-8”);必须request.getParamenter 方法调用之前设置。(代码放在第一行)
    解决方法三:只对 get 有效
    修改 server.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值