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);
  • 相关阅读:
    深入浅出SQL教程之Group by和Having
    AFNetworking3.0 Https P12证书
    C#访问注册表
    One reason for not able to show chinese correctly in installation
    Debugging DLL loading issues with GFLAGS
    RegistryFree COM Registration
    RegistrationFree COM Interop
    net use
    MS UI Automation原来如此
    取景器的视野率和放大倍率
  • 原文地址:https://www.cnblogs.com/wudingfeng/p/1344985.html
Copyright © 2011-2022 走看看