接收URL中的汉字时乱码是什么原因?

skylineeeeee 2010-10-12 06:42:58
链接中带有汉字,点击这个链接跳转过去接收汉字,正常。
F5刷新这个页面,正常。
点击浏览器的“转到”按钮,正常。
光标移到地址栏中回车,不正常,乱码了。

如果直接复制这个链接到地址栏,不管是点击“转到”按钮,还是回车,都不正常。
这是怎么回事啊。
...全文
180 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skylineeeeee 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
浏览器发送请求时,汉字是按 GBK 发送 2byte 的数据, 还是按UTF-8发送 3byte 的数据
各个浏览器不统一
[/Quote]
了解了,还是urlEncode了比较好。
wuyq11 2010-10-12
  • 打赏
  • 举报
回复
浏览器发送请求时,汉字是按 GBK 发送 2byte 的数据, 还是按UTF-8发送 3byte 的数据
各个浏览器不统一
wuyq11 2010-10-12
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode("")
HttpUtility.UrlDecode("")
skylineeeeee 2010-10-12
  • 打赏
  • 举报
回复
编码是可以的。
但是我想不通为什么会这样。
刚才用firefox测试又出新问题了,URL里带有汉字的话用回车,URL里的汉字会被替换成%B3%C9%C8%CB%B6%E0%CE%AC%C6%AC这样的字符,结果是查询错误了(因为urlEncode后不是这串字符),然后我把地址栏中的这串字符改成了%e6%88%90%e4%ba%ba%e5%a4%9a%e7%bb%b4%e7%89%87(这是urlEncodde后正确的字符)再回车,查询结果正确,但是地址栏中的编码字符又变回了汉字(真神奇,IE不会)。如果再回车的话就会和前面直接汉字回车一样查询错误。。。
搞不懂为什么会这样,用链接跳转和地址栏访问解析汉字结果会不一样。。。
huangwenquan123 2010-10-12
  • 打赏
  • 举报
回复
转的时候先编码一下HttpUtility.UrlEncode()
接的时候解码一下HttpUtility.UrlDecode()
Snowdust 2010-10-12
  • 打赏
  • 举报
回复
链接中最好不要使用汉字,用Server.HtmlEncoder转换一下,接收的地方来用Server.HtmlDecode转换回来。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧