ASCII转码UTF8 解决中文乱码 解码Unicode网址URL

时间:2015/12/2 14:48:00来源:互联网 作者:flyso 点击: 974 次

解Ascii码

string s= "%u00e6%u009c%u0080%u00e6%u0097%u00a9";

public string ASCIIToUTF8(string s)
{
        byte[] buffer = s.Split(new string[] { "%u" }, StringSplitOptions.RemoveEmptyEntries).Select(o => Convert.ToByte(o, 16)).ToArray();
        return System.Text.Encoding.UTF8.GetString(buffer);
}


解码Unicode网址URL

   private string Decode(string code)
        {
            if (code.IndexOf("%u") > -1)
            {

                byte[] buffer = code.Split(new string

[] { "%u" }, StringSplitOptions.RemoveEmptyEntries).

Select(o => Convert.ToByte(o, 16)).ToArray();

                return System.Text.Encoding.UTF8.GetString(buffer);
            }
            return code;
        }
 
        private string UrlDecodeUnicode(string str)
        {
            string[] k = str.Split('&');
            string result = string.Empty;
            foreach (string item in k)
            {
                string[] it = item.Split('=');
                result += string.Format("&{0}={1}", it[0], Decode(it[1]));
            }
 
            return result.TrimStart('&');
        }
 
 
  ss = "page=1&f=faq&k=%u00e6%u009c%u0080%u00e6%u0097%u00a9";
  ss = UrlDecodeUnicode(ss);
 
 还需
改进,如果中间加了非Unicode就会出错。。


Copyright © 2005 - 2016 flyso.cn. 飞搜 版权所有 鄂ICP备11002783号-3