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();

posted @ 2019-10-26 14:54  凌心缘  阅读(2910)  评论(0编辑  收藏  举报