zoukankan      html  css  js  c++  java
  • 客户端..服务器乱码问题

    乱码问题由来:客户端和服务器编码格式不一致,用comcat的时候是由comcat容器造成的。

    解决办法:
    一、设置编码格式
    get提交的:
    容器对get统一采用ISO8859-1
    String value = request.getParameter(name);
    value = new String(value.getBytes("ISO8859-1"),"UTF-8");
    采取下边的post设置响应字符集的编码格式无效:
    因为这种方式设置的是消息体的格式,get方式提交的(没有指定post提交都是get提交),没有在消息体里边,所以设置无效

    post提交的:
    req.setCharacterEncoding("utf-8");
    resp.setCharacterEncoding("utf-8");

    二、写请求响应过滤器
    把上边的设置为过滤器,所有的请求响应都要经过此过滤器


    三、特殊
    在测试过程中,遇到的一种乱码问题,图片格式请求的的时候,显示出来的是中文路径也是中文,但是在请求的过程中浏览器在使用get传输参数时,将参数中的中文转换成url格式,也就是使用urlEncode和urlDecode来传输,使用这种方式就是把中文转换成以%开头的编码在url中传输。

    设置无效原因:get方式提交,设置的是value的编码格式,没有找到方法设置请求的编码格式。

    如下边的请求,数据库和页面的图片路径都是中文,但是在请求地址的时候,转成了%开头的格式,找不到了。


    <img alt="头像" src="http://localhost:8080/regist/upload/Java默认打开方式设置.jpg">

    Request URL:http://localhost:8080/regist/upload/Java%E9%BB%98%E8%AE%A4%E6%89%93%E5%BC%80%E6%96%B9%E5%BC%8F%E8%AE%BE%E7%BD%AE.jpg
    Request Method:GET
    Status Code:404 Not Found
    Remote Address:127.0.0.1:8080

    解决办法:配置文件里加入URIEncoding="UTF-8"
    如果没有设置字符集,这里也会正常的显示,但是这种方式有个缺点,必须改comcat的配置文件,如果移植代码,比人的可能没有改,或许别人限制更改,所以还是要加上过滤器。

    在tomcat的/conf/server.xml文件中,找到以下这一行。
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    这行的意思也就是使用8080端口来接收html的请求。
    在这里可以加几个参数来配置不同的效果。

    URIEncoding="UTF-8" 设置url传输时对url内容的编码格式
    compression="on" 打开压缩功能 
    compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
    noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
    compressableMimeType="text/html,text/xml" 压缩类型

    ☆对于要解决乱码来说,改成以下就行
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

    添加后效果如下:
    Request URL:http://localhost:8080/regist/upload/Java%E9%BB%98%E8%AE%A4%E6%89%93%E5%BC%80%E6%96%B9%E5%BC%8F%E8%AE%BE%E7%BD%AE.jpg
    Request Method:GET
    Status Code:200 OK
    Remote Address:127.0.0.1:8080

    显示正常了,在浏览器端敲入带百分号的地址,下边显示有图片了,然后浏览器的地址成功后变成:http://localhost:8080/regist/upload/Java默认打开方式设置.jpg

  • 相关阅读:
    查找第K小数
    比较奇偶数个数
    哈夫曼树练习
    数字转二进制数练习
    随笔
    字符串反码(练习)
    eclipse构建maven的web项目
    mysql中的一些操作语句,留存
    urllib2功能说明
    Python-第三方库requests详解
  • 原文地址:https://www.cnblogs.com/chenyuanqiu2008/p/5485237.html
Copyright © 2011-2022 走看看