奇怪的编码问题 - 希伯来语

时间:2010-03-11 23:22:39

标签: url encoding character-encoding referrer

我有一个跟踪访问和访问的脚本参考网站。

我将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”

感谢名单 亚龙

1 个答案:

答案 0 :(得分:0)

使用encodeURIComponent功能代替escape功能。

如果您正在读取Request.QueryString集合中的值,那么它已经被解码,因此您使用HtmlDecode方法。