这些日子在一个应用中需要把一个DataSet导出成CSV文件以便Excel读取,但是现在存在个问题:
我通过FileStream导出后发现其中的中文全部是???这样的乱码。
这段代码如下:
大家知道这是什么原因吗?谢谢
我通过FileStream导出后发现其中的中文全部是???这样的乱码。
这段代码如下:
/// <summary>
/// 将一个String转化为一个Byte数组
/// </summary>
/// <param name="sPassword">需要转化的string</param>
/// <returns>转化后的bytes数组</returns>
public byte[] GetKeyByteArray(string para)
{
System.Text.ASCIIEncoding myASCII=new ASCIIEncoding();
byte[] byteTemp=new byte[8];
para=para.PadRight(8); //确保是8个字符
byteTemp=myASCII.GetBytes(para);
return byteTemp;
}
/// 将一个String转化为一个Byte数组
/// </summary>
/// <param name="sPassword">需要转化的string</param>
/// <returns>转化后的bytes数组</returns>
public byte[] GetKeyByteArray(string para)
{
System.Text.ASCIIEncoding myASCII=new ASCIIEncoding();
byte[] byteTemp=new byte[8];
para=para.PadRight(8); //确保是8个字符
byteTemp=myASCII.GetBytes(para);
return byteTemp;
}
/// <summary>
/// 将一个字符串附加到一个文件
/// </summary>
/// <param name="sourceFileName">源文件(需要添加的文件)</param>
/// <param name="para">用于添加的字符串</param>
public long AppendStringToFile(string sourceFileName,string para)
{
byte[] myBytes=GetKeyByteArray(para);
//创建处理文件的文件流
FileStream fsOutput=new FileStream(sourceFileName ,FileMode.Append, FileAccess.Write);
fsOutput.Write(myBytes,0,myBytes.Length);
fsOutput.Close();fsOutput=null;
return myBytes.Length;
}
/// 将一个字符串附加到一个文件
/// </summary>
/// <param name="sourceFileName">源文件(需要添加的文件)</param>
/// <param name="para">用于添加的字符串</param>
public long AppendStringToFile(string sourceFileName,string para)
{
byte[] myBytes=GetKeyByteArray(para);
//创建处理文件的文件流
FileStream fsOutput=new FileStream(sourceFileName ,FileMode.Append, FileAccess.Write);
fsOutput.Write(myBytes,0,myBytes.Length);
fsOutput.Close();fsOutput=null;
return myBytes.Length;
}
大家知道这是什么原因吗?谢谢