知识大全 URL的传递字符串问题小研究

Posted

篇首语:聪明出于勤奋,天才在于积累本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 URL的传递字符串问题小研究相关的知识,希望对你有一定的参考价值。

URL的传递字符串问题小研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前几天在调程序的时候遇到了比较郁闷的问题 我用URL从一个页面传递字符串到另一个页面的时 出现了个奇怪的问题 我要传递的字符串是 DK + 中继站 可是另一个页面接收到字符串却是 DK 中继口 加号变成了空格 站 不能解析出来 变成了不能识别的符号 口

  我上网查找了原因 URL中有些字符被转义 比如空格被编码成加号 于是传的参数明明是加号 获取的值却成了空格

  按照网上的建议 我们应该对要传递的参数进行编码处理 于是 我对传递的参数进行了处理 但是又衍生了一堆问题出来 我当时为了节约时间 就没有仔细研究 用了字符串中的Replace()方法在传送前代替了这两个字符 接收到了再代替回来 现在我来具体的展示下这个问题

   首先 我们先看下我的开始的问题(环境 VS ) 新建一个网站 在其中添加一个页面 一个页面是Defaul aspx 另一个页面Defaul aspx 在第一个页面中添加一个控件 HyperLink 后台代码

   在第二个页面中添加一个Label控件Label 后台代码

   结果显示 DK 中继口

   我当时的解决方法 用了字符串中的Replace()方法在传送前代替了这两个字符 接收到了再代替回来

   第一个页面的后台代码 第二个页面中 后台代码

   结果是 DK + 中继站 正确!

  后来我在网上找到这个这样的设置 在nfig中设置

  这样的话 就不需要替代中文了 只需要把 + 替代 中文在这个过程就不会出现问题了

  但是这样的传递中文可能还会遇到其他中文字出问题 最好是采用下面的方法将中文参数编码

   我采用URLEncode()编码 采用URLEncode()不在nfig中设置好像也可以 在我的测试中没有问题 但是为了安全 我们还是添加上上面的设置

   页面上都是一致的 第一页面的后台代码 第二个页面中 后台代码

   结果是 DK + 中继站 正确!

  后来我在网上找到这个这样的设置 在nfig中设置

  这样的话 就不需要替代中文了 只需要把 + 替代 中文在这个过程就不会出现问题了

  但是这样的传递中文可能还会遇到其他中文字出问题 最好是采用下面的方法将中文参数编码

  我采用URLEncode()编码 采用URLEncode()不在nfig中设置好像也可以 在我的测试中没有问题 但是为了安全 我们还是添加上上面的设置

   页面上都是一致的 第一页面的后台代码

   第二页面的后台代码

   结果是 DK + 中继站 正确!

  注意 一定要前后对应 比如在这里 第一页面中是先编码的 后替代 第二页面中就要先替代 再解码 不然就会出错 如 DK 中继站

  我在开头提到 遇到了比较多的问题 网上的资料有的说是用 % 来替代 + 但是我尝试了下 结果却是错误的 DK 中继站 这是什么原因呢?是网上说错了吗?但是在下面的情况中 又很让我苦笑不得 不知道具体是什么原因

   接上面 还是用 % 来替代 + 我在一次错误的输入 在第一页面后台输入了name = Server UrlEncode(name) 第二页面中解码是 name = Server HtmlDecode(name) 居然是结果对的 DK + 中继站 我换了其他的替代字符 结果也是正确的

  但是我换了其他编码和解码组合 Server HtmlEncode(name)和Server UrlDecode(name) 或者Server HtmlEncode(name)和Server HtmlDecode(name)组合 结果就不对 连中文都不对 DK 中继口

   我采用Server HtmlEncode(name)和Server HtmlDecode(name)组合 要得到正确的结果 必须用像 @ 这样的特殊字符来替代 + 当然还有在nfig中添加设置 设置内容如上

   我在查资料的时候还有提到一种方法 不需要在nfig中添加设置 在aspx文件中添加 <meta equiv= Content Type content= text/ charset=gb >我尝试了 没成功

   我还有个疑问是 在这里 我是用 @ 的特殊字符来代替 + 因为在我的字符串中是不可能出现 @ 才这样做的 但是如果我的字符串中可能出现这些特殊字符串 我又该如何替代呢?

   我在经历了这些测试后 觉得最安全的方法 在URL中传递参数时 最好还是使用URLDecode()方法 在nfig中配置上

  配置这个是需要注意 你的程序中的字符集是不是也用这个 gb 来编码解码的 如果不是 就要注意了可能引发的错误了 我在程序中就遇到了这个问题 我的程序中的画面就是用xml传递的 我加了这个设置后 就不能显示画面 我找了很长时间 才知道是是两种编码规则冲突 我画面中设置的UTF 被全局变量复制了

cha138/Article/program/net/201311/12023

相关参考

知识大全 URL的传递字符串问题小研究[2]

URL的传递字符串问题小研究[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  页面上都是一致

知识大全 asp 获取字符串中url地址函数

  asp教程获取字符串中url地址函数本文章提供了三款利用asp的正则获取字符串中url地址自定义函数哦三个方法的实现原理都是获取以开的url地址哦onerrorgotoz  dimurlkeyna

知识大全 关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法

  在通过url地址接受参数的时候有些参数的值V带有回车%A这时候在页面脚本显示的时候把这个值V付给脚本变量可能会造成脚本的错误  所以相应的一开始在传值的时候对一些字符串进行url编码在脚本赋值的时

知识大全 Java网络编程之URI、URL研究专题二

Java网络编程之URI、URL研究专题二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最后一

知识大全 Java网络编程之URI、URL研究专题六

Java网络编程之URI、URL研究专题六  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Aut

知识大全 Java网络编程之URI、URL研究专题七

Java网络编程之URI、URL研究专题七  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在对o

知识大全 Java网络编程之URI、URL研究专题四

Java网络编程之URI、URL研究专题四  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  输入j

知识大全 Java网络编程之URI、URL研究专题一(图)

Java网络编程之URI、URL研究专题一(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 利用js 进行输入框自动匹配字符的小例子

  复制代码代码如下:<p><span>输入框自动匹配字符~</span></p><p><span>但是遇到一个问题~所有匹配的

知识大全 JavaScript计算字符串中每个字符出现次数的小例子

JavaScript计算字符串中每个字符出现次数的小例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下