1,获取文件编码格式
private static Encoding getEncoding( string filePath)
{
using (var reader = new StreamReader(filePath, Encoding.Default, true))
{
if (reader.Peek() >= 0) // you need this!
reader.Read();
Encoding encoding = reader.CurrentEncoding;
reader.Close();
return encoding;
}
}
2,转换成UTF-8-BOM编码格式
(实测结果是,对日文转换编码格式后会乱码,德文则正常,有待继续研究)
public static void changeFileEncodingToUTF8BOM(string filePath)
{
//用到了上面的函数getEncoding()
Encoding oldEndcoding = getEncoding(filePath);
//读取文件内容
string str = string.Empty;
using (StreamReader sr = new StreamReader(filePath, oldEndcoding))
{
str = sr.ReadToEnd();
sr.Close();
}
//以UTF-8带BOM格式重新写入文件
Encoding newEncoding = new UTF8Encoding(true);
using (StreamWriter sw = new StreamWriter(filePath, false, newEncoding ))
{
sw.Write(str);
sw.Close();
}
}