知识大全 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] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 页面上都是一致
asp教程获取字符串中url地址函数本文章提供了三款利用asp的正则获取字符串中url地址自定义函数哦三个方法的实现原理都是获取以开的url地址哦onerrorgotoz dimurlkeyna
知识大全 关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
在通过url地址接受参数的时候有些参数的值V带有回车%A这时候在页面脚本显示的时候把这个值V付给脚本变量可能会造成脚本的错误 所以相应的一开始在传值的时候对一些字符串进行url编码在脚本赋值的时
Java网络编程之URI、URL研究专题二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最后一
Java网络编程之URI、URL研究专题六 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Aut
Java网络编程之URI、URL研究专题七 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在对o
Java网络编程之URI、URL研究专题四 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 输入j
Java网络编程之URI、URL研究专题一(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
复制代码代码如下:<p><span>输入框自动匹配字符~</span></p><p><span>但是遇到一个问题~所有匹配的
知识大全 JavaScript计算字符串中每个字符出现次数的小例子
JavaScript计算字符串中每个字符出现次数的小例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下