• 此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 和硬盘上网页文件的表编码格式不一样的时候,乱码就产生了

  • 相关阅读:
    neo4j命令
    prometheus使用四(alertmanager&grafana告警及服务发现)
    prometheus使用三(自定义监控指标实现)
    prometheus使用二(export与grafana接入)
    prometheus使用一
    一次修改域名解析引发的问题
    微信小程序支付,看这一篇就够了
    常用命令
    常见报错与问题注意
    redis迁移复制数据,主从关系建立实践
  • 原文地址:https://www.cnblogs.com/blowfish/p/3324053.html
Copyright © 2020-2023  润新知