C# Unicode编码解码

public static class CommpnHelpEx

{

/// <summary>

/// unicode编码

/// </summary>

/// <param name="str"></param>

/// <returns></returns>

public static string ToUnicodeString(this string str)

{

StringBuilder strResult = new StringBuilder();

if (!string.IsNullOrEmpty(str))

{

for (int i = 0; i < str.Length; i++)

{

strResult.Append("\\u");

strResult.Append(((int)str[i]).ToString("x"));

}

}

return strResult.ToString();

}

/// <summary>

/// unicode解码

/// </summary>

/// <param name="str"></param>

/// <returns></returns>

public static string FromUnicodeString(this string str)

{

//最直接的方法Regex.Unescape(str);

StringBuilder strResult = new StringBuilder();

if (!string.IsNullOrEmpty(str))

{

string[] strlist = str.Replace("\\", "").Split('u');

try

{

for (int i = 1; i < strlist.Length; i++)

{

int charCode = Convert.ToInt32(strlist[i], 16);

strResult.Append((char)charCode);

}

}

catch (FormatException ex)

{

return Regex.Unescape(str);

}

}

return strResult.ToString();

}

}

使用方式:

string str = "我是***";

string unicodeStr = str.ToUnicodeString();

string chStr = unicodeStr.FromUnicodeString();