using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace 源代码修改
{
public class ConvertEncodingToUTF8 : IOperateSource
{
private int amountOfHasConverted;
public int AmountOfHasConverted
{
get
{
return amountOfHasConverted;
}
}
public ConvertEncodingToUTF8()
{
amountOfHasConverted = 0;
}
private Encoding GetType(FileInfo sourceFileInfo)
{
FileStream fs = new FileStream(sourceFileInfo.FullName, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs, System.Text.Encoding.Default);
byte[] ss = reader.ReadBytes(3);
reader.Close();
Encoding encoding;
if (ss[0] >= 0xEF)
{
if (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)
{
encoding = Encoding.UTF8;
}
else if (ss[0] == 0xFE && ss[1] == 0xFF)
{
encoding = Encoding.BigEndianUnicode;
}
else if (ss[0] == 0xFF && ss[1] == 0xFE)
{
encoding = Encoding.Unicode;
}
else
{
encoding = Encoding.Default;
}
}
else
{
encoding = Encoding.Default;
}
fs.Close();
return encoding;
}
override public void Go(FileInfo sourceFileInfo)
{
Encoding encoding = GetType(sourceFileInfo);
if (encoding != Encoding.UTF8)
{
++amountOfHasConverted;
StreamReader reader = new StreamReader(sourceFileInfo.FullName, encoding);
string buffer = reader.ReadToEnd();
reader.Close();
StreamWriter writer = new StreamWriter(sourceFileInfo.FullName, false, Encoding.UTF8);
writer.Write(buffer);
writer.Close();
}
}
}
}
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace 源代码修改
{
public class ConvertEncodingToUTF8 : IOperateSource
{
private int amountOfHasConverted;
public int AmountOfHasConverted
{
get
{
return amountOfHasConverted;
}
}
public ConvertEncodingToUTF8()
{
amountOfHasConverted = 0;
}
private Encoding GetType(FileInfo sourceFileInfo)
{
FileStream fs = new FileStream(sourceFileInfo.FullName, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs, System.Text.Encoding.Default);
byte[] ss = reader.ReadBytes(3);
reader.Close();
Encoding encoding;
if (ss[0] >= 0xEF)
{
if (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)
{
encoding = Encoding.UTF8;
}
else if (ss[0] == 0xFE && ss[1] == 0xFF)
{
encoding = Encoding.BigEndianUnicode;
}
else if (ss[0] == 0xFF && ss[1] == 0xFE)
{
encoding = Encoding.Unicode;
}
else
{
encoding = Encoding.Default;
}
}
else
{
encoding = Encoding.Default;
}
fs.Close();
return encoding;
}
override public void Go(FileInfo sourceFileInfo)
{
Encoding encoding = GetType(sourceFileInfo);
if (encoding != Encoding.UTF8)
{
++amountOfHasConverted;
StreamReader reader = new StreamReader(sourceFileInfo.FullName, encoding);
string buffer = reader.ReadToEnd();
reader.Close();
StreamWriter writer = new StreamWriter(sourceFileInfo.FullName, false, Encoding.UTF8);
writer.Write(buffer);
writer.Close();
}
}
}
}