zoukankan      html  css  js  c++  java
  • javaweb 中的乱码问题

    一、post 方式

    首先我们看下面一段代码,在该HTML中我们指定的编码为“UTF-8”,如图所示。

    在该代码中,我们将表单数据提交给ParamServlet 处理

    servlet 会将接收到的数据打印到控制台

    控制台会正常显示两个值

    然后输入中文

    提交后显示乱码

    原因分析:

    我们在浏览器输入汉字后,浏览器查UTF-8编码表后,将汉字转化成二进制(一个汉字在UTF-8中占三个字节)

    发送给服务器处理,如果服务器没做任何控制(以tomcat为例),会默认去查ISO8859-1这个码表(一个字节代表一个字符)来解析数据

    iso8859-1里没有那么多字符,有的字在iso8859-1中根本没有对应字符,就用?表示,有对应的就会显示哪些奇怪的字符,就出现了乱码喽,

    所以,解决方案就出来了,我们就明确的通知我们的服务器不用ISO8859-1了,请用UTF-8

    这回就不会乱码了()

    另外  response 与request 相类似

    代码如下:

    response.setContentType("text/html;charset=utf-8");
    

     二、get方式

    以上方案只适用于post方式。因为post方式提交数据,数据在实体内容当中,而get方式提交,数据在url之中

    对于get提交只能手动进行乱码解决

     由于乱码的底层编码没有改变,所以我们将乱码按照ISO8859-1编码回原来的二进制,得到相应字节数组,我们再去查UTF-8码表,将二进制转换成相应字符

    代码如下图:

    注:以上划线代码对于post 和get方式乱码均有效。

  • 相关阅读:
    一次硬盘安装debian的过程
    Java热替换
    Hibernate缓存
    Java消息机制
    Hibernate批量操作(一)
    SQLite与SQL差异
    tablelayout:fixed 在一些情况下 会导至width失效。
    heiht三种浏览器的写法
    [WebMethod(EnableSession = true)]
    10分钟学会基于ASP.NET的 JQuery实例 (转)
  • 原文地址:https://www.cnblogs.com/xiaoduc-org/p/5320855.html
Copyright © 2011-2022 走看看