• C#版escape unescape


    /// <summary>
    /// Escape方法
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    public static string Escape(string s)
    {
        StringBuilder sb = new StringBuilder();
        byte[] byteArr = Encoding.Unicode.GetBytes(s);
        for (int i = 0; i < byteArr.Length; i += 2)
        {
            sb.Append("%u");
            sb.Append(byteArr[i + 1].ToString("X2"));//把字節轉換為十六進制的字符串表現形式
            sb.Append(byteArr[i].ToString("X2"));
        }
        return sb.ToString();
    }
    
    /// <summary>
    /// UnEscape方法
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    public static string UnEscape(string s)
    {
        string str = s.Remove(0, 2);//刪除最前面兩個"%u"
        string[] strArr = str.Split(new string[] { "%u" }, StringSplitOptions.None);//以子字符串"%u"分隔
        byte[] byteArr = new byte[strArr.Length * 2];
        for (int i = 0, j = 0; i < strArr.Length; i++, j += 2)
        {
            byteArr[j + 1] = Convert.ToByte(strArr[i].Substring(0, 2), 16);  //把十六進制形式的字串符串轉換為二進制字節
            byteArr[j] = Convert.ToByte(strArr[i].Substring(2, 2), 16);
        }
        str = Encoding.Unicode.GetString(byteArr); //把字節轉為unicode編碼
        return str;
    }
  • 相关阅读:
    AI---ListPicker的使用
    AI---Screen & Notifier
    Android---开发环境
    Android---App Inventor环境搭建
    OS---host文件
    JAVA---接口与抽象类
    JAVA---类成员的访问权限
    JSP---一个Servlet处理多个请求操作
    hdu 6016
    hdu 6019
  • 原文地址:https://www.cnblogs.com/Transmuter/p/14120908.html
Copyright © 2020-2023  润新知