用
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input);
读取Unicode编码的TXT文件是乱码,
通过修改上面代码:
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input,"Unicode");
就不会产生乱码,但万一别人上传的TXT是UTF-8,以上程序又会读取乱码了,
请问能不能获取TXT文件的编码格式呢?
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input);
读取Unicode编码的TXT文件是乱码,
通过修改上面代码:
InputStream input = file.getInputStream();
InputStreamReader inReader = new InputStreamReader(input,"Unicode");
就不会产生乱码,但万一别人上传的TXT是UTF-8,以上程序又会读取乱码了,
请问能不能获取TXT文件的编码格式呢?
换用Reader,基于unicode字符流的方法把,就不会有乱码了
http://www.regexlab.com/zh/encoding.htm
0xfffe: 编码格式"Unicode";
0xfeff: 编码格式"UnicodeBig";
你试试看
用getBytes()啊。
WriteIntoText("别乱了sdfsdf士大夫师傅是",Server.MapPath("~/caiji/www.wearelearn.net.txt"));
发现其中汉字乱码了。
原来xp系统默认的编码是gb2312
解决办法:
增加这一行:StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312"));
解决源码:
FileStream fs = new FileStream(str_SavePath, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312")); sw.WriteLine(str_write); sw.Close(); fs.Close();
转自:
http://www.wearelearn.net/asp_net/aspnetFile_9_35/621.html