ASP.NETページ(ashx)はGET
、UTF8文字列を含む要求を受信します。Windows-1255データを使用してSqlServerデータベースを読み取ります。
私は彼らを一緒に働かせることができないようです。私は、SO(主に文字列の文字エンコードをwindows-1252からutf-8に変換する)で収集された情報と、主題に関するmsdnを使用しました。
以下の関数で何かを実行すると、常に開始時と同じようになりますが、まったく変換されません。
何かがおかしいですか?
編集
私が具体的にやろうとしていること(をgetData
返す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);
}