1

一部のWindowsストアアプリでは、次のようなURLを送信する必要があります

new Uri(string.Format(@"http://www.site.com?word={0}",
                                      sourceText))

ここsourceTextで、 は一部のテキストのエスケープ表現です。UTF-8 が必要な場合は簡単ですが、Windows-1251 エンコーディングが必要です。

私が試してみました

    byte[] unicodeBytes = Encoding.Unicode.GetBytes(sourceText);
    byte[] win1251bytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding("windows-1251"), unicodeBytes);
    string sourceText =
        Uri.EscapeUriString(Encoding.GetEncoding("windows-1251").GetString(win1251bytes, 0, win1251bytes.Length));

ただし、自動的に Unicode に変換する をUri.EscapeUriString使用します。string

を使用できましたが、.NET for Windows StoreHttpUtility.UrlEncode(word, Encoding.GetEncoding(1251)にはありません。System.Web.HttpUtility

たとえば、UTF-8 の「привет」: %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82; Windows-1251 : %EF%F0%E8%E2%E5%F2. 2番目の文字列が必要です

4

2 に答える 2

0
string sourceText = "привет";
byte[] win1251bytes = Encoding.GetEncoding("windows-1251").GetBytes(sourceText);
string hex = BitConverter.ToString(win1251bytes);
string result = "%" + hex.Replace("-", "%");
// Result: %EF%F0%E8%E2%E5%F2
于 2013-10-16T10:25:49.750 に答える