ASP.NET 页面 (ashx) 接收GET
带有 UTF8 字符串的请求。它使用 Windows-1255 数据读取 SqlServer 数据库。
我似乎无法让他们一起工作。我使用了在 SO 上收集的信息(主要是Convert a string's character encoding from windows-1252 to utf-8)以及有关该主题的msdn 。
当我通过以下函数运行任何东西时 - 它总是以与开始时相同的方式结束 - 根本没有转换。
是不是做错了什么?
编辑
我特别想做的事情(getData
返回 a Dictionary<int, string>
):
getData().Where(a => a.Value.Contains(context.Request.QueryString["q"]))
结果为空,除非我发送“中性”字符,例如“'”或“,”。
代码
string windows1255FromUTF8(string p)
{
Encoding win = Encoding.GetEncoding(1255);
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(p);
byte[] winBytes = Encoding.Convert(utf8, win, utfBytes);
return win.GetString(winBytes);
}
string UTF8FromWindows1255(string p)
{
Encoding win = Encoding.GetEncoding(1255);
Encoding utf8 = Encoding.UTF8;
byte[] winBytes = win.GetBytes(p);
byte[] utfBytes = Encoding.Convert(win, utf8, winBytes);
return utf8.GetString(utfBytes);
}