0

在 Windows Phone 开发中,我想用以下代码编码的 utf8 编写一个 URI,但失败了。结果仍然是 unicode 但不是 %D6%DC 的形式...

        byte[] unicodeBytes = Encoding.Unicode.GetBytes(str);
        byte[] utf8bytes = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, unicodeBytes);
        char[] utf8Chars = new char[Encoding.UTF8.GetCharCount(utf8bytes, 0, utf8bytes.Length)];
        Encoding.UTF8.GetChars(utf8bytes, 0, utf8bytes.Length, utf8Chars, 0);
        string utf8string = new string(utf8Chars);
        var URI = new Uri("http://www.jpwy.net/gc/search.php?" + utf8string);

这有什么问题?

4

1 回答 1

2

我不确定您的目的是什么,但是有什么理由不使用 HttpUtility.UrlEncode 对字符串进行编码?Urlencode 的默认编码是 UTF8。

您应该能够将上面的代码替换为

var URI = new Uri("http://www.jpwy.net/gc/search.php?" + HttpUtility.UrlEncode(str));
于 2013-03-10T07:07:33.443 回答