2015-10-01 50 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); 
} 

我不作任何保证这个代码是正确。请在部署到您的文件系统之前仔细检查!