我有以下代碼片段。這用於導入從世界各地的多個位置提供給我們的CSV文件。文件格式相同,實際上非常簡單,名字,姓氏,電子郵件和一些日期以及一到兩個其他文本列。我遇到的問題是一些非英文字符,俄語,德語,西班牙字符沒有正確導入。當我查看它產生的DataTable中的文件內容時,例如「ÐнÐ'Ñ€Ðμй」,當它產生「Андрей」等。我尋找了很長時間,似乎找不到解決辦法。如果我將文件保存到xls然後導入它,改變我的連接字符串當然它工作正常,所以它似乎像噴氣引擎可以處理unicode字符。任何幫助,將不勝感激。如果有關係我在Windows 7 64位上使用VS 2010。提前致謝!OLE CSV導入中的Unicode字符
string filename = @"C:\Data\Test.csv";
string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data;Extended Properties=""text;CharacterSet=UNICODE;HDR=Yes;FMT=Delimited"";";
string commString = string.Format("Select * from {0}", filename);
DataTable dt = new DataTable();
using (OleDbConnection connection = new OleDbConnection(connString))
{
connection.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter(commString, connection))
{
da.Fill(dt);
}
}
我試着寫你的例子代碼(改變路徑除外),它工作正常。我用記事本創建了一個test.csv文件,並將你的示例值複製到它並保存爲Unicode。我在調試器中查看了數據表,並且該值看起來正確。所以雖然這絲毫不能幫助你,但知道「它至少在世界上的一臺機器上工作」可能是令人鼓舞的。我的也是64位的win7。我碰巧打開了VS2005並在那裏運行,但我懷疑這會有所作爲。 –