背景
由于一些工具还是使用GBK为默认格式导致,经常在会遇到一些项目打开后乱码 。
索性就写了个转换工具。
工具下载地址
github开源地址
转换代码
private void gbk2utf8file(string src, string des)
{
//var buffer = File.ReadAllBytes(src);
string strGbk = File.ReadAllText(src, Encoding.Default);
byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(strGbk);
byte[] buffer2 = Encoding.Convert(Encoding.Default, Encoding.UTF8, buffer);
File.WriteAllBytes(des, buffer2);
}
遍历获取文件夹:
private void gbk2utfFolder(string src, string des)
{
//获取文件夹中所有的文件
DirectoryInfo srcFolder = new DirectoryInfo(src);
FileInfo[] files = srcFolder.GetFiles();
//转换
foreach (FileInfo item in files)
{
string fileDes = des + item.Name;
gbk2utf8file(item.FullName, fileDes);
}
DirectoryInfo[] dirs = srcFolder.GetDirectories();
foreach (DirectoryInfo item in dirs)
{
string folderdes = des + item.Name + "//";
if (!Directory.Exists(folderdes))
{
Directory.CreateDirectory(folderdes);
}
gbk2utfFolder(item.FullName, folderdes);
}
}