首页 新闻 会员 周边

如何改变文件的编码格式

0
悬赏园豆:30 [已解决问题] 解决于 2012-11-06 19:07

MVC中,我做一个上传功能,filePath获取到上传的文件D:\1234.csv,那我要想更改1234.csv文件的编码格式,怎么做?就是说1234csv文件打开默认是GB2312,我想把它改为默认UTF-8打开。

Andylls的主页 Andylls | 初学一级 | 园豆:5
提问于:2012-10-23 17:05
< >
分享
最佳答案
0

// 大概是这样,还没测试过,应该没问题吧

string FullPathFileName = "我的文件.txt";

FileInfo fi = new FileInfo( FullPathFileName );

System.IO.FileStream fs = fi.OpenRead();

 byte[] cont = new byte[ fs.Length ];
 fs.Read( cont , 0 , cont.Length );
 fs.Close();

StreamWriter docWriter;
System.Text.Encoding ec = System.Text.Encoding.GetEncoding( "UTF-8" );

System.Text.Encoding ecGB2312 = System.Text.Encoding.GetEncoding( "GB2312" );

 docWriter = new StreamWriter( new FileStream( FullPathFileName , FileMode.CreateNew ) , ec );
docWriter.Write( ecGB2312.GetString( cont ));
docWriter.Close();

收获园豆:30
hypernova | 菜鸟二级 |园豆:276 | 2012-10-24 01:08

谢谢你的豆子阿

hypernova | 园豆:276 (菜鸟二级) | 2012-11-07 00:52
其他回答(2)
0

gb2312改成utd-8有啥用吗 ?貌似没多大区别的啊!

String str=new String("1234.csv".getBytes("gb2312"),"utf-8");

Merry天秤 | 园豆:202 (菜鸟二级) | 2012-10-23 17:28

我只是打个比喻,我是要把国外文档的编码格式转换为UTF-8,不然老是乱码。

支持(0) 反对(0) Andylls | 园豆:5 (初学一级) | 2012-10-23 17:33

String str=new String("1234.csv".getBytes("gb2312"),"utf-8");

你这样只是把"1234.csv"当成一个字符串把"1234.csv"转换编码格式吧,而不是改变文件打开的编码格式

支持(0) 反对(0) Andylls | 园豆:5 (初学一级) | 2012-10-23 17:35
1

保存的时候指定编码:

new StreamWriter("...", false, System.Text.Encoding.UTF8)

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-23 21:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册