一个文件(.txt/.htm),保存时的编码是ASCII格式,但是在C#中用
StramReader sr = new StreamReader(fileLocation, Encoding.ASCII);
sr.ReadToEnd()取出来的data却是乱码,如果用Encoding.Default,就显示正常.我看过了Encoding.Default是"ISO-8859-1"类型,为什么保存时是用的ASCII,却要用ISO-88598-1去打开才能显示正常呢?
StramReader sr = new StreamReader(fileLocation, Encoding.ASCII);
sr.ReadToEnd()取出来的data却是乱码,如果用Encoding.Default,就显示正常.我看过了Encoding.Default是"ISO-8859-1"类型,为什么保存时是用的ASCII,却要用ISO-88598-1去打开才能显示正常呢?
解决方案 »
- C# 快捷键设置
- =================VS2008 不能连接数据库=================================================
- 除了自己form 桌面背景 都变成黑白的50%透明的怎么做?
- C# form中,控件如何设置热键,有什么属性可以设置吗?
- propertyGrid和ArrayList的使用
- 编译错误 !!
- 应该是很简单,大家来看看:如何获得解决方案中文件夹的绝对路径?
- 什么获取获取指定的网页上的图片,flash,.wav文件的绝对地址
- 如何实现DataGrid内容的自动滚动!
- axWebBrowser屏蔽了右键,但左键也不起作用了!帮助!
- 关于PropertyGrid的问题
- 在线等,急,谢谢了
这是按当前系统获取的.
但为什么我save 的时候设置文件的编码是ASCII,却用 Encoding.ASCII打开是乱码呢?
我就担心如果其他人的xp(比如他的SYSTEM是英文,或其他语言的)下create 的file,save的时候编码是选择的ASCII,然后copy到另一台机器,而这一台机器的SYSTEM是中文的.会不会出问题?
都用UTF-8呗
还有没有其他解决方法? :(
保存时汉字转换的字节成为单字节,读取时汉字对应的双字节编码不全(识别为 U+0000 和 U+007F 之间的字符值),因而是乱码.
如果你用ASCII编码来写文件,那么就存在这个问题,除了统一编码为Unicode或UTF-8没有办法
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace consolepro
{
public class MyClass
{
public static void Main()
{
FileStream fs = new FileStream("C:\\myfile.txt", FileMode.Create); StreamWriter writer = new StreamWriter(fs, Encoding.ASCII);
writer.WriteLine("什么");
writer.Close();
fs.Close();
FileStream fa = new FileStream("C:\\myfile.txt", FileMode.Open);
StreamReader reader = new StreamReader(fa,Encoding.ASCII);
string temp = reader.ReadToEnd();
reader.Close();
Console.WriteLine(temp);
fs.Close();
Console.ReadKey();
}
}
}