zoukankan      html  css  js  c++  java
  • uuencode 解码

    class Program
        {
            static void Main(string[] args)
            {
                var fileTxt = File.ReadAllText(@"D:REPORT_WIP_20201103.CSV");
                var decodeTxt = UuencodeDecode(fileTxt);
                Console.WriteLine(decodeTxt);
            }
    
            private static string UuencodeDecode(string encTxt)
            {
                StringBuilder stringBuilder = new StringBuilder();
                string[] lines = encTxt.Split(new string[] { "
    " }, StringSplitOptions.None);
                //排除首行begin 尾行end
                for (int i = 1; i < lines.Length - 1; i++)
                {
                    if (lines[i].Length > 0)
                    {
                        byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(lines[i].Substring(1));
                        stringBuilder.Append(UuencodeDecodeByByte(byteArray));
                    }
                }
                return stringBuilder.ToString();
            }
    
            private static string UuencodeDecodeByByte(byte[] bytes)
            {
                List<char> list = new List<char>();
                List<byte> bits = new List<byte>();
                for (int i = 0; i < bytes.Length; i++)
                {
                    var strX2 = Convert.ToString(bytes[i] - 32, 2).PadLeft(6, '0');
                    //"`"ASCII 96-32=64 toX2 1000000 (7位)截取后6位
                    if (strX2.Length > 6)
                    {
                        strX2 = strX2.Substring(strX2.Length - 6, 6);
                    }
                    list.AddRange(strX2.ToCharArray());
                }
                int iGroupNum = list.Count / 8;
                for (int i = 0; i < iGroupNum; i++)
                {
                    string strX2 = new string(value: list.Skip(8 * i).Take(8).ToArray());
                    bits.Add((byte)(Convert.ToInt32(strX2, 2)));
                }
                return System.Text.Encoding.ASCII.GetString(bits.ToArray());
            }
        }
    

     

  • 相关阅读:
    面向对象设计原则
    面向对象设计流程
    mysql远程连接命令(转)
    如何使用matplotlib绘制一个函数的图像
    svn:ignore eclipse开发一般忽略文件
    zookeeper client 常用操作
    pip使用
    vi常用快捷键
    python常用函数
    RabbitMQ 学习记录
  • 原文地址:https://www.cnblogs.com/Lv2014/p/13925294.html
Copyright © 2011-2022 走看看