我正在读取asp.net网络应用程序中的Csv文件以生成报告。CsvReader元素不以特殊字符(如±或Σ)读取。
var avar = FileUploader.PostedFile.FileName;
var myfile = File.OpenText(avar);
CsvReader csv = new CsvReader(myfile);
data = csv.GetRecords<T>().ToList();读者跳过上面提到的特殊字符。所有其他字符都会被读取,包括围绕特殊字符的字符。有人能告诉我怎么解决这个问题吗?谢谢。
发布于 2015-03-24 15:26:37
我使用来自这个链接的GetEncoding Effective way to find any file's Encoding来查找我的文件的编码。
然后,我设置了配置:
CsvConfiguration config = new CsvConfiguration();
config.Delimiter = ",";
Encoding enc = GetEncoding(FileUploader.PostedFile.FileName);
config.Encoding = enc;
config.HasHeaderRecord = true;
config.QuoteNoFields = true;接下来,我使用FileStream加载文件并将其发送到StreamReader。
FileStream stream = File.OpenRead(FileUploader.PostedFile.FileName);
StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(enc.HeaderName));
CsvReader csv = new CsvReader(reader, config);
datas = csv.GetRecords<T>().ToList();当我加载一个文件时,所有字符都是可读的。是一个IEnumerable类
https://stackoverflow.com/questions/28889161
复制相似问题