編碼轉換的方法

編碼轉換的方法

1.Unicode 轉換中文

在這裏插入圖片描述

public App()
{
    var str = "class=%u5404%u7701%u4f53%u5f69&name=%u6c5f%u82cf%u4e03%u661f%u5f69";

    //第1種方法,最簡潔
    var outStr1 = System.Web.HttpUtility.UrlDecode(str);

    //第2種方法,複雜一些
    var outStr2 = Regex.Unescape(str.Replace("%", "\\"));

    //第3種方法,更復雜一些
    var outStr3 = Unicode2CN(str);

    //第4種方法同方法3
    var outstr4 = Unicode2CN2(str);

}

private string Unicode2CN2(string str)
{
    str = str.Replace("%", "\\");
    string outStr = "";
    Regex reg = new Regex(@"(?i)\\u([0-9a-f]{4})");
    outStr = reg.Replace(str, delegate (Match m)
    {
        return ((char)int.Parse(m.Groups[1].Value, System.Globalization.NumberStyles.HexNumber)).ToString();
    });
    return outStr;
}

private string Unicode2CN(string str)
{
    str = str.Replace("%", "\\");
    string outStr = "";
    Regex reg = new Regex(@"(?i)\\u([0-9a-f]{4})");
    outStr = reg.Replace(str, delegate (Match m)
    {
        return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString();
    });
    return outStr;
}

2.漢字轉Unicode

    public static string CN2Unicode(string srcText)
        {
            if (srcText == "")
            {
                return "";
            }
            string dst = "";
            char[] src = srcText.ToCharArray();
            for (int i = 0; i < src.Length; i++)
            {
                byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
                string str = @"\u" + bytes[1].ToString("X2") + bytes[0].ToString("X2");
                dst += str;
            }
            return dst;
        }

3.字體編碼的轉換

鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章