• 编码转换与网址解码


    -

    编码转换

    public string UTF8ToGB2312(string str)
            {
                
    try
                {    
                    Encoding utf8 
    = Encoding.GetEncoding(65001);
                    Encoding gb2312 
    = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
                    byte[] temp = utf8.GetBytes(str);
                    
    byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);
                    
    string result = gb2312.GetString(temp1); 
                    
    return result;
                }
                
    catch  (Exception ex)//(UnsupportedEncodingException ex)
                {
                    MessageBox.Show(ex.ToString());
                    
    return null
                }
            }

    网址解码子

    Encoding en = Encoding.UTF8;
                
    byte[] bytes = null;
                
    char[] chars = null;
                
    string rs;
                
    string value = item.Value;
                value 
    = "C%23%E5%A6%82%E4%BD%95%E7%BC%96%E7%A0%81%E5%AD%97%E7%AC%A6%E4%B8%B2";
                
    string[] ss = value.Split(new string[] { "%" }, StringSplitOptions.RemoveEmptyEntries);
                List
    <byte> lb = new List<byte>();
                
                
    for (int i = 0; i < ss.Length; i++)
                {
                    
    if (ss[i].Length == 1)
                    {
                        lb.AddRange(en.GetBytes(ss[i]));
                    }
                    
    else if (ss[i].Length == 2)
                    {
                        lb.Add(
    byte.Parse(ss[i], NumberStyles.AllowHexSpecifier));
                    }
                    
    else
                    {
                        lb.AddRange(en.GetBytes(ss[i].Substring(
    2, ss[i].Length - 2)));
                    }
                }
                bytes 
    = new byte[lb.Count];
                lb.CopyTo(bytes);
                
    //chars = new char[en.GetCharCount(bytes, 0, bytes.Length)];
                
    //en.GetChars(bytes, 0, bytes.Length, chars, 0);
                
    //rs = new string(chars);
                rs = en.GetString(bytes);

    其实可以只用一句话:

    rs = HttpUtility.UrlDecode(value);
  • 相关阅读:
    随机抢红包算法实现
    C#Random函数在循环中每次获取一样的值
    YouTube Cobalt 浏览器支持
    原生js,通过document.getElementByClassName获取元素的索引值
    http请求415错误Unsupported Media Type
    axios
    vue项目中,localhost可以访问,IP无法访问的问题
    时间戳
    Vue.Draggable:基于 Sortable.js 的 Vue 拖拽组件使用中遇到的问题
    empty 与 remove 的区别
  • 原文地址:https://www.cnblogs.com/wudingfeng/p/1344985.html
Copyright © 2020-2023  润新知