我有一个跟踪访问和访问的脚本参考网站。
我将document.referrer(我在javascript中使用escape())发送到服务器 在使用HttpUtility.HtmlDecode(C#)解码后,将字符串存储在数据库中。
对于大多数情况,我可以解析referer字符串并显示希伯来字符, 但有一些情况我不能。
我发现两个字符串不同(一个显示正确,一个显示不正确)
显示权限的那个包含以下类型的字符: http://www.google.co.il/search?hl=iw&source=hp&q=%D7%99%D7%91%D7%95%D7%90%D7%A0%D7%99%D7%9D%D7%9C%D7%9E%D7%AA%D7%A0%D7%95%D7%AA& meta =& aq = f& oq =
那些无法正常显示的内容(除非我使用Microsoft.JScript.GlobalObject.unescape )如下所示: http://www.google.co.il/custom?q=%FA%EE%E9%F8 - %F6%E9%E9%F8%EB%E1& client = pub-0385896995839253& forid = 1
我可以理解第二个字符串包含ISO-8859-1字符,并且在服务器端未转义时可正常工作,但作为URL的一部分没有编码信息
所以,我无法区分这两种格式。或者我可以吗?我应该吗?
注意:当我复制&将这些网址粘贴到浏览器地址栏中,浏览器将第一个检测为“Unicode(UTF-8)”,另一个检测为“Windows-1255”
感谢名单 亚龙
答案 0 :(得分:0)
使用encodeURIComponent
功能代替escape
功能。
如果您正在读取Request.QueryString集合中的值,那么它已经被解码,因此您不使用HtmlDecode
方法。