/// <summary>
/// 字符串转换为Unicode码,对于Unicode码小于255的不予转换,类似于Java中的native2ascii转码方式
/// 例 如:我爱祢1生1世,dear!
/// 结果为:\u6211\u7231\u79621\u751f1\u4e16,dear\uff01
/// 其中,逗号是英文的,所以没有转换;而最后的感叹号是中文的,所以进行了转换
/// </summary>
/// <param name="str">如:我爱祢1生1世,dear!</param>
/// <returns>如:\u6211\u7231\u79621\u751f1\u4e16,dear\uff01</returns>
private String StringToUnicode(String str)
string result = "";
foreach (char c in str)
string s = ((int)c).ToString("x");
if ((int)c <= 255)
s = "" + c;
else if (s.Length == 2)
s = "\\u00" + s;
else
s = "\\u" + s;
result += s;
return result;
/// <summary>
/// Unicode码转换为字符串,StringToUnicode的逆运算
/// </summary>
/// <param name="str">如:\u6211\u7231\u79621\u751f1\u4e16,dear\uff01</param>
/// <returns>如:我爱祢1生1世,dear!</returns>
private string UnicodeToString(string str)
return System.Text.RegularExpressions.Regex.Replace(
str,
@"\\u(?<Value>[a-zA-Z0-9]{4})",
m =>
return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();