编码转换

来源:互联网 发布:排序算法java 编辑:程序博客网 时间:2024/05/01 02:39
 static string UNICODE_ToChinese(string content)        {            string GBK_Code = "";            string GBK_Value = "";            try            {                string pattern = @"\\u([A-Fa-f0-9]{1,4})";                if (!Regex.IsMatch(content, pattern))                    return content;                MatchCollection collection = Regex.Matches(content, pattern);                HashSet<string> hs = new HashSet<string>();                foreach (Match item in collection)                {                    GBK_Code = item.Value;                    if (hs.Contains(GBK_Code))                        continue;                    hs.Add(GBK_Code);                    GBK_Value = item.Groups[1].Value;                    string chinese = ((char)Convert.ToInt32(GBK_Value, 16)).ToString();                    content = content.Replace(GBK_Code, chinese);                }                return content;            }            catch (Exception ex)            {                var t1 = GBK_Value;                var t = GBK_Code;                return "";            }        }        static string GBK_X_ToChinese(string content)        {            string GBK_Code = "";            string GBK_Value = "";            try            {                string pattern = @"&#x([\dA-Fa-f]{1,4});";                if (!Regex.IsMatch(content, pattern))                    return content;                MatchCollection collection = Regex.Matches(content, pattern);                HashSet<string> hs = new HashSet<string>();                foreach (Match item in collection)                {                    GBK_Code = item.Value;                    if (hs.Contains(GBK_Code))                        continue;                    hs.Add(GBK_Code);                    GBK_Value = item.Groups[1].Value;                    string chinese = ((char)Convert.ToInt32(GBK_Value, 16)).ToString();                    content = content.Replace(GBK_Code, chinese);                }                return content;            }            catch (Exception ex)            {                var t1 = GBK_Value;                var t = GBK_Code;                return "";            }        }        static string GBKToChinese(string content)        {            string GBK_Code = "";            string GBK_Value = "";            try            {            string pattern = "&#(\\d{1,4});";            if (!Regex.IsMatch(content, pattern))                return content;            MatchCollection collection = Regex.Matches(content, pattern);            HashSet<string> hs = new HashSet<string>();            foreach (Match item in collection)            {                                 GBK_Code = item.Value;                 if (hs.Contains(GBK_Code))                     continue;                 hs.Add(GBK_Code);                 GBK_Value = item.Groups[1].Value;                string chinese = ((char)Convert.ToInt32(GBK_Value, 10)).ToString();                content = content.Replace(GBK_Code, chinese);            }            return content;            }            catch (Exception ex)            {                var t1 = GBK_Value;                var t = GBK_Code;                return "";            }        }
        private static string conventString(string str)        {            StringBuilder sb = new StringBuilder();            foreach (char c in str)                sb.AppendFormat("\\u{0}", Convert.ToString((int)c, 16).PadLeft(4,'0'));            return sb.ToString();        }
备注:PadLeft(4,'0')不足4位以0补其,很重要

原创粉丝点击