我有一文本文件,有三列,中间以Tab键隔开(如下),我要将此文本文件读入数据库,但因为是文本文件中是中文,所以读出后就成了乱码,请各位指教.
文本文件格式: 一班 李XX 男
二班 王XX 男
三班 陈X 女
下面是代码:
System.IO.FileStream fs=System.IO.File.OpenRead(Server.MapPath(TextBox1.Text.Trim()+".txt"));
long filelen = fs.Seek(0,SeekOrigin.End)-fs.Seek(0,SeekOrigin.Begin);
fs.Seek(0,SeekOrigin.Begin);
byte [] buff = new byte[filelen];
fs.Read(buff,0,(int)filelen);
fs.Close();
int fileLine = 0;
System.Collections.ArrayList aChargeItem = new ArrayList();
for (long i=0;i<filelen;i++)
{
string lineStr = "";
fileLine++;
while (i<filelen && buff[i] !=10)
{
lineStr = lineStr + ((char)buff[i]);
i++;
}
char[] aa = new char[1];
aa[0] = '\t';
lineStr=lineStr.Substring(0,lineStr.Length-1);
string[] itemStr = lineStr.Split(aa);
if(itemStr.Length == 3)
{
aChargeItem.Add(itemStr);
}
}for(int i=0;i<aChargeItem.Count;i++)
{
string a=((string[])aChargeItem[i])[0];
string b=((string[])aChargeItem[i])[1];
string c=((string[])aChargeItem[i])[2];
因为我的文本文件中是中文,abc也就成了乱码
}
文本文件格式: 一班 李XX 男
二班 王XX 男
三班 陈X 女
下面是代码:
System.IO.FileStream fs=System.IO.File.OpenRead(Server.MapPath(TextBox1.Text.Trim()+".txt"));
long filelen = fs.Seek(0,SeekOrigin.End)-fs.Seek(0,SeekOrigin.Begin);
fs.Seek(0,SeekOrigin.Begin);
byte [] buff = new byte[filelen];
fs.Read(buff,0,(int)filelen);
fs.Close();
int fileLine = 0;
System.Collections.ArrayList aChargeItem = new ArrayList();
for (long i=0;i<filelen;i++)
{
string lineStr = "";
fileLine++;
while (i<filelen && buff[i] !=10)
{
lineStr = lineStr + ((char)buff[i]);
i++;
}
char[] aa = new char[1];
aa[0] = '\t';
lineStr=lineStr.Substring(0,lineStr.Length-1);
string[] itemStr = lineStr.Split(aa);
if(itemStr.Length == 3)
{
aChargeItem.Add(itemStr);
}
}for(int i=0;i<aChargeItem.Count;i++)
{
string a=((string[])aChargeItem[i])[0];
string b=((string[])aChargeItem[i])[1];
string c=((string[])aChargeItem[i])[2];
因为我的文本文件中是中文,abc也就成了乱码
}
解决方案 »
- 如何逐行读取文本文件
- 还是在线求助 不信没人能解决
- C# 怎么获取 EXecl 表格中有多少个工作薄
- 新人求段C#实现使用excle导入sqlserver的思路及代码,不甚感激
- 存储过程传参数问题 - 字符传参
- 初学者。关于table的问题,在线等待!谢先
- 大家都来说说学C#那些书不能看,那些书不能看,免得耽误初学者的时间.
- 急求帮忙!C#Task如何在子线程在开子线程,并等待子线程中线程结束
- C# Socket传送文件,逐语句调试可以传送。直接运行不能传送文件
- 关于WFP datagrid 一个我百思不得其解的问题。
- 怎么把listBox里的信息保存到文件中去?
- 请问:如何掌握中每个类的众多的属性,方法,事件的用法。
using System.IO;FileStream fs = File.OpenRead(Server.MapPath(TextBox1.Text.Trim()+".txt"));
StreamReader sr = new StreamReader( fs, Encoding.GetEncoding( "gb2312" ) );
//Use "sr.ReadLine()" to get data