在.net怎么读取csv文件保存到数组里

这个是我用的调用的读取csv文件的数组方法,应该是对的但是读取出来好像给予的值编码不正确,我测试了显示出来的值已经乱码了.要怎么弄才能显示不乱码,csv里面是数字和中文.... 这个是我用的调用的读取csv 文件的数组方法,应该是对的但是读取出来好像给予的值编码不正确,我测试了显示出来的值已经乱码了.要怎么弄才能显示不乱码,csv里面是数字和中文.net里面定义的是string和datetime和ToDecimal类型,sql数据库里为money,varchar,int类型.
private string[] ReadCSVFile()
{
System.IO.FileStream fs = null;
System.IO.StreamReader sw = null;
string content = string.Empty;
try
{
//判断磁盘上是否存在工资CSV文件
if (File.Exists(strPath))
{
//以只读模式打开
fs = new System.IO.FileStream(strPath, System.IO.FileMode.Open);
sw = new System.IO.StreamReader(fs, System.Text.Encoding.Default);
//从文件中读出所有的记录
StringBuilder builderHis = new StringBuilder();
string strLine =sw.ReadLine();
while (strLine != null)
{
content += "~" + strLine;
strLine = sw.ReadLine();
}
}
else
{
JScript.MessageBox("请先上传文件!", this, false);
}
return content.ToString().Split(new char[] { '~' });
}
catch(Exception exp)
{
throw exp;
return null;
}
}

调用上面的方法
//读取CSV文件,返回字符串数组
PayStoreroomInfo psi = new PayStoreroomInfo();
string[] splitStrs = this.ReadCSVFile();
for (int i = 4; i < splitStrs.Length; i++)
{
string[] strCommaSplits = splitStrs[i].Split(new char[] { ',' });
psi.ID = Convert.ToInt32(strCommaSplits[0]);
psi.姓名 = strCommaSplits[1];
}
add(psi);
展开
 我来答
百度网友cfe4d0f
2014-03-26 · TA获得超过1502个赞
知道小有建树答主
回答量:937
采纳率:100%
帮助的人:885万
展开全部
sw = new System.IO.StreamReader(fs, System.Text.Encoding.Default);

编码问题解决 这句话就可以了。。
第二个参数可以替换成你的文件适用的编码 如Encoding.Utf8

另外逗号分隔文件的格式约定很复杂 如果想达到通用的效果 简单的split逗号换行是行不通的
还要对引号和引号的转义进行处理
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式