黑马程序员技术交流社区
标题:
从外部文件导入到sql数据库错误
[打印本页]
作者:
刘建法
时间:
2012-4-26 15:28
标题:
从外部文件导入到sql数据库错误
本帖最后由 刘建法 于 2012-4-27 09:14 编辑
老师在讲的时候全部用的是英文字符,我用了一下中文的字符 ,导致了程序出错,在那个streamreader中怎么读中文字符?
作者:
黄燕京
时间:
2012-4-26 16:36
读一定长的文件。包含中文和英文。
如用ASCII读,位数对了。一个汉字是两个字符。也就是读一个汉字过去两位,而汉字都成了问号“?”;
StreamReader sr=new StreamReader("1.txt",Encoding.ASCII);
如果用default或是gb2312读,汉字算一个字符,读一个汉字过去一位,这样定长字符串就会出现位数偏差。
StreamReader sr=new StreamReader("1.txt",Encoding.Default);
如何使位数即是两位,又能是汉字??
比如1个txt文件.里面有汉字和有英文,我只知道前面200个字符(这里的200个字符是汉字算2个字符的)是我需要的内容我想通过StreamReader.Read(buffer,0,200)读出来,如何操作?
主要是是用uncode读会把汉字算算成1个字符,而用ascci读会把汉字读出来是乱码.我希望能在读取的时候让汉字算2个字节,但是读出来后不能是乱码.
作者:
刘建法
时间:
2012-4-26 17:25
黄燕京 发表于 2012-4-26 16:36
读一定长的文件。包含中文和英文。
如用ASCII读,位数对了。一个汉字是两个字符。也就是读一个汉字过去 ...
老兄:
我把这个text文件全部是中文输入法下输入的怎么用 Encoding.default还是不行呀!输出来的还是���这个呀 !照上面这样说 我上面这样是可以的呀
作者:
张林春
时间:
2012-4-26 20:42
StreamReader sr = new StreamReader("c:\\1.txt", Encoding.Default);
如果这样还不行话。。你看一下你的那个文件是什么编码格试的。
你可以按我说的试一下。
StreamReader sr = new StreamReader("c:\\1.txt",Encoding.GetEncoding("gb123"));
GB123是标准的。。应该没有什么问题。。
作者:
王志龙
时间:
2012-4-26 21:12
是不是乱码了啊
加一个Encoding.Default
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2