1 /// <summary> 2 /// 将Unicode编码转换为汉字字符串 3 /// </summary> 4 /// <param name="str">Unicode编码字符串</param> 5 /// <returns>汉字字符串</returns> 6 public static string ToGB2312(string str) 7 { 8 StringBuilder sb = new StringBuilder(); 9 MatchCollection mCollection2 = Regex.Matches(str, "([\w]+)|(\\u([\w]{4}))"); 10 if (mCollection2 != null && mCollection2.Count > 0) 11 { 12 foreach (Match m2 in mCollection2) 13 { 14 string v = m2.Value; 15 if (v.StartsWith("\u")) 16 { 17 string word = v.Substring(2); 18 byte[] codes = new byte[2]; 19 int code = System.Convert.ToInt32(word.Substring(0, 2), 16); 20 int code2 = System.Convert.ToInt32(word.Substring(2), 16); 21 codes[0] = (byte)code2; 22 codes[1] = (byte)code; 23 sb.Append(Encoding.Unicode.GetString(codes)); 24 } 25 else 26 { 27 sb.Append(v); 28 } 29 } 30 } 31 return sb.ToString(); 32 }
1 //可以包括其他字符 2 public string uncode(string str) 3 { 4 string outStr = ""; 5 Regex reg = new Regex(@"(?i)//u([0-9a-f]{4})"); 6 outStr = reg.Replace(str, delegate(Match m1) 7 { 8 return ((char)Convert.ToInt32(m1.Groups[1].Value, 16)).ToString(); 9 }); 10 return outStr; 11 }