【C#】ファイル符号化フォーマットの取得とUTF-8-BOM符号化への変換
1259 ワード
1、ファイルコードフォーマットを取得する
2,UTF-8-BOM符号化フォーマットに変換
(実測の結果、日本語に対して符号化フォーマットを変換すると文字化けし、ドイツ語は正常で、引き続き検討する必要がある)
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();
}
}