zoukankan      html  css  js  c++  java
  • 此utf8 非彼utf8 ——谈http协议里的编码问题

     我这里看两个编码:

    BDPAGETYPE:2
    BDQID:0xc92b034d0bc985e8
    BDUSERID:809441751
    Cache-Control:private
    Connection:Keep-Alive
    Content-Encoding:gzip
    Content-Length:13047
    Content-Type:text/html;charset=utf-8
    Date:Mon, 16 Sep 2013 03:50:00 GMT
    Expires:Mon, 16 Sep 2013 03:50:00 GMT
    Server:BWS/1.0
    Set-Cookie:BDSVRTM=91; path=/
    Set-Cookie:H_PS_PSSID=3361_2777_1431_2976_3312; path=/; domain=.baidu.com
    Vary:Accept-Encoding

    上面这段代码是访问百度的时候返回的http包的头部,大家看这个红色的部分,这里有个charset=utf-8

    我们再看一个事例

    <!Doctype html><html xmlns=http://www.w3.org/1999/xhtml><head><meta http-equiv=Content-Type content="text/html;charset=utf-8"><meta http-equiv=X-UA-Compatible content=IE=EmulateIE7><title>百度一下,你就知道 </title>

    这是返回的html代码里的,这里面也有个charset=utf-8 这两个是表达的一个意思吗?答案是否定的

    下面我们就详细解释下这两个地方:

    先看第二个,下面的例子

    <form action="" method="post">

    <input type="text" value="你好" name="kw">

    </form>

    提交数据的时候回变成这样 kw=%E4%BD%A0%E5%A5%BD

    回对form表单里的数据进行utf-8编码

    我们再看第一个charset=utf-8,这个又是表示的什么呢?

    大家看到了没,第一个charset=utf-8表示的是文件的编码格式;你们当文件什么格式的时候 http包返回的头部就是什么吗?答案是否定的。

    http包的头部的编码的信息不是根据文件而变化的、是通过web服务器iis、apache等配置的,所有当第一个UTF-8 和硬盘上网页文件的表编码格式不一样的时候,乱码就产生了

  • 相关阅读:
    HDU 1863 畅通工程(Kruskal)
    HDU 1879 继续畅通工程(Kruskra)
    HDU 1102 Constructing Roads(Kruskal)
    POJ 3150 Cellular Automaton(矩阵快速幂)
    POJ 3070 Fibonacci(矩阵快速幂)
    ZOJ 1648 Circuit Board(计算几何)
    ZOJ 3498 Javabeans
    ZOJ 3490 String Successor(模拟)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
    Java实现 LeetCode 749 隔离病毒(DFS嵌套)
  • 原文地址:https://www.cnblogs.com/blowfish/p/3324053.html
Copyright © 2011-2022 走看看