0

我有一个脚本可以跟踪网站的访问和引荐。

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

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

我发现这两个字符串是不同的(一个显示正确,一个不显示)

正确显示的包含这些字符: 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 中没有编码信息

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

注意:当我在浏览器地址栏中复制并粘贴这些 url 时,浏览器将第一个检测为“Unicode(UTF-8)”,另一个检测为“Windows-1255”

感谢亚龙

4

1 回答 1

0

使用encodeURIComponent函数而不是escape函数。

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

于 2010-03-11T23:27:01.723 回答