いつも大変お世話になっております。
C#でCSVからデータを読み込んで、SQLiteに書き込むというプログラムを作成しています。
CSVはSJISでSQliteはUTF-8なので、読み込んだデータをUTF-8に変換しなければいけないのですが、それがうまくいきません。
データは、まず、webcliantでFTP接続をして、このようにダウンロードをしています。
C#
1// バイナリを文字列に変換(UTF8 -> 文字列) 2string str = System.Text.Encoding.UTF8.GetString(sourceData, 0, sourceData.Length); 3 4// StreamWriter の作成 5using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@item.filepath, false, System.Text.Encoding.GetEncoding("shift_jis"))) 6{ 7 // ファイルへの書き込み(このとき文字列 -> Shift-JIS) 8 sw.Write(str); 9}
そのようなデータを、以下のように、StreamReaderを使って読み込んでいます。
C#
1// csvファイルを開く 2using (var sr = new System.IO.StreamReader(@csvfile.filepath)) 3{ 4 5 // ストリームの末尾まで繰り返す 6 while (!sr.EndOfStream) 7 { 8 // ファイルから一行読み込む 9 var line = sr.ReadLine(); 10 } 11 12}
このように読み込んだデータを、
http://dobon.net/vb/dotnet/string/getencoding.html
このページにあるように、
C#
1bytesData = System.Text.Encoding.UTF8.GetBytes(value); 2cmd.Parameters["data"].Value = System.Text.Encoding.UTF8.GetString(bytesData);
このようにして、UTF-8に変換しようとしているのですが、これではうまくいきません。
というか、そもそも文字コード変換は、
デコードやエンコードと共にしか出来ないのでしょうか?
もしくは、ReadLineメソッド実行時にエンコードさせる方法は無いでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/05 12:17
2016/06/05 12:28
2016/06/05 12:43
2016/06/05 13:00
2016/06/05 13:26
2016/06/05 13:47
2016/06/05 13:48
2016/06/05 13:53
2016/06/05 13:57
2016/06/05 14:15
2016/06/05 14:17
2016/06/05 14:25