Web-URL编码流程图(详细了解乱码原因)

URL编码流程图

原URL---->GET时浏览器根据HTTP头的Content-Type的charset,POST根据(<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>)对URL进行编码或者利用JavaScript(如果JavaScript编码了则浏览器一看都是ASCII字符就不再编码)使用GBK或者UTF-8等编码对URL进行编码---->全为ASCII字符---->以iso-8859-1编码方式转换为二进制---->随请求头一起发送出去(GET没有请求实体, POST有)---->服务器接收到经过iso-8859-1编码后的URL---->服务器用iso-8859-1编码进行解码---->网页一般都有meta头的charset选项, 服务器根据此进行再次解码(POST表单提交过去的时候也会根据此编码进行编码)---->得到正确的值

参考

  http://www.jb51.net/web/12714.html
  http://www.cnblogs.com/yencain/articles/1321386.html
  http://wanghuan8086.iteye.com/blog/173869

原文地址:https://www.cnblogs.com/JohnABC/p/3245690.html