如何在WP中将unicode转换为utf8

如何在WP中将unicode转换为utf8,unicode,utf-8,windows-phone-8,Unicode,Utf 8,Windows Phone 8,在Windows Phone开发中,我想用utf8编写一个URI,用以下代码编码,但失败了。结果仍然是unicode,但不是%D6%DC的形式 byte[] unicodeBytes = Encoding.Unicode.GetBytes(str); byte[] utf8bytes = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, unicodeBytes); char[] utf8Chars

在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);

这有什么问题吗?

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

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

var URI = new Uri("http://www.jpwy.net/gc/search.php?" + HttpUtility.UrlEncode(str));

谢谢这很方便,很好。我使用了uri.toString,所以我认为它在输出中转换回了Unicode。我将采用这种解决方案。