我有这个字符串:ç²¾é¸ç 寶ä½?å?/é»?ké??
我想将其转换为:作品/黃k金
我已经使用了很多方法对其进行解码,但没有成功。我确切地说这个字符串是URL的一部分。服务器通过301 redirect (in the location header)
发送给我,我想解码它以解析网址。
以下是我一直在尝试的内容:
string text = "ç²¾é¸ç 寶ä½?å?/é»?ké??";
string decoded = System.Web.HttpUtility.UrlDecode(text);
我也试过这种方法,但没有成功:
public static string HtmlEncode(string text)
{
string result;
using (StringWriter sw = new StringWriter())
{
var x = new HtmlTextWriter(sw);
x.WriteEncodedText(text);
result = sw.ToString();
}
return result;
}
标题给了我一个非utf8字符集(iso-8859-1),我也尝试过UTF-8转换,但没有成功......
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] isoBytes = iso.GetBytes(text);
byte[] utfBytes = Encoding.Convert(iso, utf8, isoBytes);
return utf8.GetString(utfBytes);
答案 0 :(得分:1)
试试这个
static void Main(string[] args)
{
string str = "ç²¾é¸ç 寶ä½?å?/é»?ké??";
byte[] origBytes = new byte[str.Length];
int i = 0;
foreach (char c in str)
{
origBytes[i++] = (byte)c;
}
Encoding origEncoding = Encoding.GetEncoding(936);
Encoding newEncoding = Encoding.Unicode;
byte[] newBytes = Encoding.Convert(origEncoding, newEncoding, origBytes);
string res = newEncoding.GetString(newBytes);
}
输出