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方式乱码均有效。

  • 相关阅读:
    计算机原理 3.4 补码一位乘法
    信号与系统 第二章(2.1)
    信号与系统(1.6、1.7)
    第17章 使用BIOS进行键盘输入和磁盘读写
    第16章 直接定址表
    聚类:主要聚类算法
    机器学习——输入空间、特征空间、输出空间
    机器学习——线性回归
    机器学习——梯度下降法
    深度学习——概率与信息论
  • 原文地址:https://www.cnblogs.com/xiaoduc-org/p/5320855.html
Copyright © 2011-2022 走看看