如果网址中含有汉字,浏览器会自动将其转换成URL编码,而在接收端,它又自动转换回来。

大部分时候都没什么问题,但有时候就很讨厌。因为生成这种URL编码,编码时的字符集和解码字符集不一定相同,比如编码时用GB2312,解码用UTF-8,就出现乱码。

这个时候,提取到的参数,自然就乱。

解决之道是不要用Request.QueryString来提取,而是用Request.RawUrl来获取。后者是原始URL,没有自动解码的。自己获取,自己处理。

//scode = Request.QueryString["word"];

int p = Request.RawUrl .IndexOf("word=");

string scode = Request.RawUrl.Substring(p + 5);

另,在浏览器的地址栏进行get传参时,浏览器会自动进行一次UrlDecode()的解码,然后才会传给程序使用,也就是会先解码一次,所以如果传输中文的参数时,应该进行2次UrlEncode()编码给浏览器,程序再用一次UrlDecode解码即可,亲身试验过,确实如此。

最新文章

  1. 从史上八大MySQL事故中学到的经验
  2. float-position的一些细节
  3. BestCoder Round 69 Div 2 1001&& 1002 || HDU 5610 && 5611
  4. C#数据结构选择
  5. ClassCastException 导致程序一运行就强制退出
  6. project和task
  7. Linux用户组与用户组基本命令
  8. 【Mood-7】tell 2 my gf-miss u not sudden but always
  9. Webview Android与js交互
  10. 通过 ContentResolver 读取联系人信息
  11. react项目和next项目修改默认端口号
  12. System类学习笔记
  13. hdu1576(扩展欧几里得)
  14. IIS 6的日志time-taken字段没有值的解决方案
  15. 解决ios10以上点击缩放的问题
  16. php获取字符串长度函数strlen和mb_strlen
  17. favi.icon是什么?
  18. ArraySizeHelper解析
  19. RabittMQ实践(一): RabbitMQ的安装、启动
  20. IOS8添加启动图

热门文章

  1. MySQL存储引擎--MYSIAM和INNODB引擎区别
  2. 最长公共子序列(POJ1458)
  3. Tomcat服务器版本号泄露-低危漏洞修复
  4. net.sf.json.JSONException: 'object' is an array. Use JSONArray instead
  5. ibatis和myBatis打印sql语句的log4j配置文件
  6. CocoaAsyncSocket UDP发送数据超过包大小限制(Message too long)
  7. Eclipse导入项目时出错提示 project is missing required library
  8. 【LeetCode】208. Implement Trie (Prefix Tree)
  9. Java 时间相比较
  10. React(0.13) hello world