zoukankan      html  css  js  c++  java
  • URL编码:不同的操作系统、不同的浏览器、不同的网页字符集,将导致完全不同的编码结果。

      URL编码:不同的操作系统、不同的浏览器、不同的网页字符集,将导致完全不同的编码结果。

      因此如果Url中有中文或特殊字符,一定要自己调用函数编码解码,不要让浏览器帮你编码,否则出现了问题会浪费你很多时间才能找到原因。

      编码的实验网上有文章,请看此处:http://www.ruanyifeng.com/blog/2010/02/url_encoding.html

    文章中的几个结论:

    (1)结论1就是,网址路径的编码,用的是utf-8编码。 

    http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82 后面两个字是"春节"的编码。

    (2)结论2就是,查询字符串的编码,用的是操作系统的默认编码。 

    http://www.baidu.com/s?wd=春节,后面两个字会被编码。

    (3)结论3就是,GET和POST方法的编码,用的是网页的编码。

    这时的编码方法由网页的编码决定,也就是由HTML源码中字符集的设定决定。

      <meta http-equiv="Content-Type" content="text/html;charset=xxxx">

    如果上面这一行最后的charset是UTF-8,则URL就以UTF-8编码;如果是GB2312,URL就以GB2312编码。百度和谷歌用的就不同。

    (4)在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码。

    可以使用的编码如下:

    1,

    encodeURI()是Javascript中真正用来对URL编码的函数。

    它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

    它对应的解码函数是decodeURI()。

    需要注意的是,它不对单引号'编码。

    八、Javascript函数:encodeURIComponent()

    最后一个Javascript编码函数是encodeURIComponent()。与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

    因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。

     在JavaScript中推荐的做法是用encodeURI对URI的网址部分编码,用encodeURIComponent对URI中传递的参数进行编码。

      在C#中推荐的做法是用Uri.EscapeUriString对URI的网址部分编码,用Uri.EscapeDataString对URI中传递的参数进行编码。

    我遇到的问题如下:

     最可能的原因是:
    •在地址中可能存在键入错误。
    •当您点击某个链接时,它可能已过期。
     
       您可以尝试以下操作:
         重新键入地址。 

     
         返回到上一页。
     
         转至  并查找您想要的信息。 
     
         更多信息

    此错误(HTTP 400 错误的请求)意味着 Internet Explorer 可以连接到 Web 服务器,但是因

    为地址问题无法找到该网页。

    有关 HTTP 错误的详细信息,请参阅帮助。

    查看页面属性是:res://ieframe.dll/http_400.htm

    后来对比服务器和用户机子上同一个页面的属性不同:

    服务器:

    http://10.14.100.78/mainegov/JobTools/ShouGuang/CHKInfoList.aspx?KeShi=

    %E8%80%95%E4%BF%9D

    客户机:

    http://10.14.100.78/mainegov/JobTools/ShouGuang/CHKInfoList.aspx?KeShi=耕保

    &&NodeID=1029

    从服务器的的这个页面,转向其他页面正常,但是从客户机转向其他页面就找不到页面。

    服务器浏览器对url编码了,而客户机没有对它编码。

  • 相关阅读:
    webpack 模块化 原理
    nodejs 程序 调试
    inno打包教程
    原生xhr、fetch 请求的拦截。mock 技术原理
    package.json 字段说明
    npm 依赖包 的管理【即 node_modules目录的设计原理】
    现在浏览器、webview 中 css的兼容性问题。
    安卓APP(H5本地打包apk应用)
    npm 脚本
    linux系统 离线安装node和nginx(即npm包)
  • 原文地址:https://www.cnblogs.com/wang7/p/3682794.html
Copyright © 2011-2022 走看看