2016-08-03 36 views
1

csvファイルからvb.netアプリケーションにデータをインポートしています。以下は、これを達成するために使用している現在のコードです:VB.NetにCSVをインポートするときにUTF8エンコーディングを指定する

Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1""" 
    Dim MyImportConnection As New System.Data.OleDb.OleDbConnection 
    MyImportConnection.ConnectionString = myImportConnectionString 
    MyImportConnection.Open() 
    Dim myImportAdapterString As String = "select * from [" & mySheet & "$]" 
    Dim MyImportCommand As New System.Data.OleDb.OleDbCommand(myImportAdapterString, MyImportConnection) 
    Dim myImportDataAdapter As New System.Data.OleDb.OleDbDataAdapter(MyImportCommand) 
    Dim myImportDataTable As New System.Data.DataTable 
    myImportDataAdapter.Fill(myImportDataTable) 
    dgvFirst.DataSource = myImportDataTable 
    myImportDataAdapter.Dispose() 
    MyImportCommand.Dispose() 
    MyImportConnection.Close() 
    MyImportConnection.Dispose() 
    GC.Collect() 

問題は、データがUTF8でエンコードされていることです。インポートすると、特殊文字が正しく表示されません。私がcsvファイルを開き、正しいエンコーディングを使用できる唯一の方法は、手動でExcelを使用して開き、新しいExcelファイルにデータをインポートすることです。

ファイルが自動的にvb.netデータテーブルにインポートされるときに、外部文字が正しく表示されるように指定する方法はありますか?

多くの感謝:)

+2

CSVファイルを読み込もうとしているのですが、ちょっとしたことをやっていませんか? – Fairy

+0

[this](http://stackoverflow.com/questions/8576580/convert-csv-file-from-any-type-to-utf-8)をご覧ください – Leprechaun

+1

なぜOLEDBを使用してCSVファイルを照会していますか!?? –

答えて

0

あなたはExtended Propertiesに入力エンコーディングとして;CharacterSet=ANSIを追加することができます。

が(アイデアがhereから来ている)

Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='"_ 
    & txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1"";CharacterSet=ANSI" 

によって

Dim myImportConnectionString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='"_ 
    & txtboxSelectFile.Text & "';Extended Properties=""Excel 8.0;IMEX=1""" 

を交換してください

関連する問題