Swagger導入cvs文件出現亂碼的解決辦法
問題說明
后端.net core WebApi 導入 csv文件 出現了亂碼,主要是希臘字母 λ 解析不出來,中文解析不出來,查了很多資料,試過在http管道中指定編碼,試過將文件轉碼,可能方式不對。最后得到解決辦法如下:
用 nuget 引用 System.Text.Encoding.CodePages 這個包
然后在文件上傳的時候加上
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding encoding = Encoding.GetEncoding("gb2312");
然后讀取文件的時候,用流讀取,並寫成 UTF-8的編碼,如下:
using (var stream = file.OpenReadStream())
{
string input = "";
using (var reader = new StreamReader(stream, encoding))
{
input = reader.ReadToEnd();
}
File.WriteAllText(newfilePath, input, Encoding.UTF8);
}
至此問題解決,特做筆記。