• .net core Api上传Txt文档读取并且解决乱码问题


    .net core Api上传Txt文档读取并且解决乱码问题

    一、直接先上关键:注意下方的strm 是 IFormFile file对象,并且此文只针对API上传TXT所处理。

      1. 读取的代码:

    using (StreamReader reader = new StreamReader(strm, Encoding.GetEncoding("GB2312")))
                    {
    
                        string line = null;
                        while ((line = reader.ReadLine()) != null)
                        {
                             //  line是读取到这一行的数据
                        }
                    }    

      2. 保存txt文件并且的代码:

    string name = Guid.NewGuid().ToString() + ".txt";
                            string filePath = "/Uploads/txt/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + name;
    
                            string rootPath = Directory.GetCurrentDirectory();
                            string path = $@"{rootPath}/Uploads/txt/" + DateTime.Now.ToString("yyyy-MM-dd");
                            string pathRq = $@"/Uploads/txt/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + name;
    
                            if (!Directory.Exists(path))
                            {
                                Directory.CreateDirectory(path);
                            }
    
                            using (FileStream fs = System.IO.File.Create(path + "/" + name))
                            {
                                StreamWriter sw = new StreamWriter(fs);
                                string str = "123456"sw.WriteLine(str);
    
                                sw.Flush();
                                sw.Close();
                            }

    3. 如果导入的文件中存在中文,那么就会出现乱码问题。解决方案如下:

    1. 指定读取文件是GB2312
    using (StreamReader reader = new StreamReader(strm, Encoding.GetEncoding("GB2312")))
    2. 注入:Encoding到容器中
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

    谢谢学习!!!关注我,共同进步

  • 相关阅读:
    【转】逆向工程:让我们剥开软件的坚果
    分散/聚集IO(scatter/gather)及iovec结构体
    C10K并发连接_转
    AVL平衡二叉树
    软中断
    应用层timer_如何序列化timer
    应用层timer_libc_posix timer
    linux/unix 段错误捕获_转
    C/C++捕获段错误,打印出错的具体位置(精确到哪一行)_转
    linux内存查看及释放
  • 原文地址:https://www.cnblogs.com/wangjinya/p/15352134.html
Copyright © 2020-2023  润新知