Encoding af quesrystring parametre
Hejsa,Jeg har lavet en lille funktion, der udtrækker querystring-parametre fra en refererende side og gemmer det til noget statistik.
Men hvis der fx. er søgt på ræv eller bær (altså noget med danske tegn), vises søgeordene en smule mærkeligt.
Jeg har forsøgt at afkode søgeordene, men det virker ikke rigtigt.
Min kode er sådan her:
protected void Page_Load(object sender, EventArgs e)
{
HttpContext currentRequest = HttpContext.Current;
// Tjek om der er en referrer
if (currentRequest.Request.UrlReferrer != null)
{
string searchPhrase = null;
string referrerHostname = currentRequest.Request.UrlReferrer.Host.ToString();
string referrerQuerystring = currentRequest.Request.UrlReferrer.Query;
// Opdel referrerQuerystring i chunks
string[] queryParts = new string[6];
char[] splitter = { '&' };
queryParts = referrerQuerystring.Split(splitter);
// Tjek om referrer er Google
//if (referrerHostname.Equals("localhost"))
//{
// searchPhrase = queryParts[1].Replace("+", " ");
// searchPhrase = searchPhrase.Replace("q=", "");
// label_SearchPhrase.Text = searchPhrase;
//}
if (referrerHostname.Equals("localhost"))
{
searchPhrase = queryParts[0].Replace("+", " ");
searchPhrase = searchPhrase.Replace("?q=", "");
searchPhrase = EncodeSearchPhrase(searchPhrase);
label_SearchPhrase.Text = searchPhrase;
}
}
}
private static string EncodeSearchPhrase(string searchPhrase)
{
Encoding iso = Encoding.GetEncoding("iso8859-1");
Encoding unicode = Encoding.UTF8;
byte[] unicodeBytes = unicode.GetBytes(searchPhrase);
return iso.GetString(unicodeBytes);
}
