原创  上传CSV文件并更换编码 收藏

最近遇到带法文,德文等CSV上传到服务上读取乱码的问题

 

解决办法如下:

 

  1.  protected void btnUpload_Click(object sender, EventArgs e)
  2.     {
  3.         if (upExcel.HasFile)
  4.         {
  5.             string ext = Path.GetExtension(upExcel.FileName);
  6.             string saveFolder = Global.UploadTempFolder;
  7.             string fileName = Guid.NewGuid().ToString("N") + ext;
  8.             string savePath = saveFolder + fileName;
  9.             if (!Directory.Exists(saveFolder))
  10.                 Directory.CreateDirectory(saveFolder);
  11.             ViewState["FilePath"] = savePath;
  12.             string strEncoding = "iso-8859-1";//CSV文件原来的编码
  13.             Encoding encoding = Encoding.GetEncoding(strEncoding);
  14.             byte[] localEncodingByte = Encoding.Convert(encoding,//CSV文件原来的编码
  15.                 Encoding.Default,//用默认编码保存才不会乱码
  16.                 upExcel.FileBytes);//只能从BYTE直接转换,如果从STRING转换依旧会乱码
  17.             File.WriteAllBytes(savePath, localEncodingByte);
  18.           
  19.             DataTable dt = CSV.GetDataSet(saveFolder, fileName).Tables[0];
  20.             gvExcelData.DataSource = dt;
  21.             gvExcelData.DataBind();
  22.         }
  23.     }

发表于 @ 2008年12月15日 14:05:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains | 新一篇:LINQ to SQL 的EntitySet)>)

  • 发表评论
  • 评论内容:
  •  
Copyright © greatbag
Powered by CSDN Blog