zoukankan      html  css  js  c++  java
  • 编码转换与网址解码

    -

    编码转换

    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);
  • 相关阅读:
    sgu209:Areas(计算几何)
    altium designer电气符号和包的常用元素
    wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计
    zoj 3820 Building Fire Stations(二分法+bfs)
    iOS 注册或登录页面(UILable,UITextField,UIButton)
    [ACM] POJ 2689 Prime Distance (筛选范围大素数)
    数字签名和数字证书技术简介(两)
    [Node] Using dotenv to config env variables
    [TypeStyle] Compose CSS classes using TypeStyle
    [Node] Use babel-preset-env with Native Node Features and Also Use Babel Plugins
  • 原文地址:https://www.cnblogs.com/wudingfeng/p/1344985.html
Copyright © 2011-2022 走看看