csv ファイルを読み込んで、表示させたら文字化けしてた
ので、色々やってみて分かったことをメモ。
Dim file As String = "hoge.csv" Dim hoge As String() = System.IO.File.ReadAllLines(file, System.Text.Encoding.Default)
第2引数を指定すれば、OK!
csv ファイルの文字コードが Shift_JIS か UTF-8 (BOM 付き) であれば、これでよかった。
でも、euc, UTF-8 (BOM 無し) はダメだった。
正しく表示させるには、
Dim file As String = "hoge.csv" 'euc Dim hoge As String() = System.IO.File.ReadAllLines(file, System.Text.Encoding.GetEncoding(51932)) 'UTF-8 Dim fuga As String() = System.IO.File.ReadAllLines(file, System.Text.Encoding.UTF8)
とそれぞれの文字コード毎に指定しないといけない。
まず、読み込むファイルの文字コードを判別しないといけないってことかぁ〜。
調べたら、.NET Framework では文字コードを判別する方法が用意されていないらしい。
文字コードを判別する - .NET Tips (VB.NET,C#...)
結論
文字コードの判別は大変だ。