2015-10-01 47 views
-1

我有一個csv文件的文件夾,我想要導入到SQL Server。這與BULK INSERT正常工作。設置Unicode文件夾中的所有文件的Unicode編碼#

但是,我有一個編碼問題,在數據庫中獲得奇怪的憲章 - 如果我打開記事本中的CSV文件,並再次保存爲Unicode,它的作品完美。

是他們在C#中的一種方式,以編程方式將文件夾中的所有文件轉換爲unicode?

感謝

+1

或者只是[設置正確的代碼頁](https://msdn.microsoft.com/en-us/library/ms188365.aspx)。 – CodeCaster

+0

它的UTF8 - 不認爲BULK INSERT支持 – user2199192

回答

1

所有文件:

 string text = File.ReadAllText("data.txt", Encoding.ASCII); 
     File.WriteAllText("data.txt", text, Encoding.Unicode); 
+0

你這個人:)感謝作品像一個魅力 – user2199192

0

爲了擴大對@ Sandre的回答,您可以批量像這樣的這種操作:

var di = new DirectoryInfo(@"path\to\csvFolder"); 
var csvFiles = di.EnumerateFiles("*.csv", SearchOption.TopDirectoryOnly); 
var outputFolderDi = new DirectoryInfo(Path.Combine(di.FullName, "outputFolder")); 
outputFolderDi.Create(); 
foreach(var filePath in csvFiles.Select(fi => fi.FullName)) 
{ 
    var text = File.ReadAllText(filePath); 
    var fileName = Path.GetFileName(filePath); 
    var newFilePath = Path.Combine(outputFolderDi.FullName, fileName); 
    File.WriteAllText(newFilePath, text, Encoding.Unicode); 
} 

我不作任何保證這個代碼是正確。請在部署到您的文件系統之前仔細檢查!