2010-03-11 43 views
0

我有一个脚本跟踪访问&查阅者到一个网站。奇怪的编码问题 - 希伯来文

我发送document.referrer(我在javascript中使用escape())到服务器 并在使用HttpUtility.HtmlDecode(C#)解码之后将字符串存储在数据库中。

对于大多数情况下,我可以解析引用字符串并显示希伯来字符, 但有几种情况我不能。

我发现这两个字符串是不同的(一个显示右侧,一个没有)

显示正确的包含这些类型的角色之一: 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 &元= &水溶液= F & OQ =

不正确显示的那些(除非我使用Microsoft.JScript.GlobalObject.unescape)看起来像这样: http://www.google.co.il/custom?q=%FA%EE%E9%F8 - %F6%E9%E9%F8%EB%E1 &客户端=酒吧-0385896995839253 & FORID = 1

我可以理解,第二个字符串包含ISO-8859-1字符,并且正常工作在服务器端转义的时候,但没有编码信息作为URL的一部分

所以,我无法区分这两种格式。或者我可以吗?我是不是该?

的注意事项:当我复制&粘贴到浏览器地址栏中的网址,浏览器检测到第一个为“的Unicode(UTF-8)”,另一个为“Windows-1255”

感谢名单 Yaron

回答

0

使用encodeURIComponent函数代替escape函数。

如果您正在读取Request.QueryString集合中的值,它已经被解码,所以您应该而不是使用HtmlDecode方法。