例如用户在百度搜索 “坐式香熏药浴舱 价格 ”进入我的网站,
我用
if (System.Web.HttpContext.Current.Request.UrlReferrer != null)
pUrl = System.Web.HttpContext.Current.Request.UrlReferrer.ToString(); 抓取上一页面URL,
但是得到却不正确,
请教大家如何才能得到正确的URL啊?
我用
if (System.Web.HttpContext.Current.Request.UrlReferrer != null)
pUrl = System.Web.HttpContext.Current.Request.UrlReferrer.ToString(); 抓取上一页面URL,
但是得到却不正确,
请教大家如何才能得到正确的URL啊?
解决方案 »
- 使用Session传递值的问题
- asp.net 获取文本框值(文本框有多工号,分隔的)
- 风格切换实现方法
- 布局居中的页面,每当执行javascript弹出脚本后,为何整个页面就会移到显示器最左端?
- 问个简单点的HTML标记问题
- 在网上看到的面试题大全,有兴趣的朋友可以来试试看
- 每天5万流量(所有页面都是静态页)需要花多少钱买服务器?宽带应该申请哪种?
- 快毕业了,想去北京找个asp.net开发的工作,水平中上等,大概一个月能赚多少?
- Datalist 的问题
- 如果在C#中实现 IXMLHTTPRequest.onreadystatechange 事件
- 在线编辑器的焦点问题!急
- VS2008(2005)中 Asp.net C# 怎么添加页面事件??
help!!!
与
Server.UrlEncode(str_url); 的具体应用,哈。
pUrl = Server.UrlDecode(pUrl);都用遍了,没有能解决啊
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Text;namespace BxgAdmin
{
public class keyword
{
private string[][] _Enginers = new string[][] {
new string[]{"google","utf8","q"},
new string[]{"baidu","gb2312","wd"},
new string[]{"yahoo","utf8","p"},
new string[]{"yisou","utf8","search"},
new string[]{"live","utf8","q"},
new string[]{"tom","gb2312","word"},
new string[]{"163","gb2312","q"},
new string[]{"iask","gb2312","k"},
new string[]{"soso","gb2312","w"},
new string[]{"sogou","gb2312","query"},
new string[]{"zhongsou","gb2312","w"},
new string[]{"3721","gb2312","p"},
new string[]{"openfind","utf8","q"},
new string[]{"alltheweb","utf8","q"},
new string[]{"lycos","utf8","query"},
new string[]{"onseek","utf8","q"}
};
//搜索引擎名称
private string _EngineName = "";
public string EngineName
{
get
{
return _EngineName;
}
}
private string keyurl;
//搜索引擎编码
private string _Coding = "utf8";
public string Coding
{
get
{
return _Coding;
}
}
//搜索引擎关键字查询参数名称
private string _RegexWord = "";
public string RegexWord
{
get
{
return _RegexWord;
}
}
private string _Regex = @"(";
public void EngineRegEx(string myString)
{
for (int i = 0, j = _Enginers.Length; i < j; i++)
{
if (myString.Contains(_Enginers[i][0]))
{
_EngineName = _Enginers[i][0];
_Coding = _Enginers[i][1];
_RegexWord = _Enginers[i][2];
_Regex += _EngineName + @"\.+.*[?/&]" + _RegexWord + @"[=:])(?<key>[^&]*)";
break;
}
}
}
public string SearchName(string str)
{
for (int i = 0, j = _Enginers.Length; i < j; i++)
{
if (str.Contains(_Enginers[i][0]))
{
keyurl = _Enginers[i][0];
break;
}
}
return keyurl;
}
public string SearchKey(string myString)//获得关键字
{
EngineRegEx(myString.ToLower());
if (_EngineName != "")
{
Regex myReg = new Regex(_Regex, RegexOptions.IgnoreCase); Match matche = myReg.Match(myString);
myString = matche.Groups["key"].Value;
//去处表示为空格的+
myString = myString.Replace("+", " "); if (_Coding == "gb2312")
{
myString = GetUTF8String(myString);
}
else
{
myString = Uri.UnescapeDataString(myString);
}
}
return myString;
}
public string GetUTF8String(string myString)
{
Regex myReg = new Regex("(?<key>%..%..)", RegexOptions.IgnoreCase); MatchCollection matches = myReg.Matches(myString);
string myWord; for (int i = 0, j = matches.Count; i < j; i++)
{
myWord = matches[i].Groups["key"].Value.ToString();
myString = myString.Replace(myWord, GB2312ToUTF8(myWord));
}
return myString;
}
public string GB2312ToUTF8(string myString)
{
string[] myWord = myString.Split('%');
byte[] myByte = new byte[] { Convert.ToByte(myWord[1], 16), Convert.ToByte(myWord[2], 16) }; Encoding GB = Encoding.GetEncoding("GB2312");
Encoding U8 = Encoding.UTF8;
myByte = Encoding.Convert(GB, U8, myByte); char[] Chars = new char[U8.GetCharCount(myByte, 0, myByte.Length)];
U8.GetChars(myByte, 0, myByte.Length, Chars, 0); return new string(Chars);
}
}
}