2012-02-22 6 views
2

quand j'importer un fichier csv en utilisant Oledb, des personnages étranges: ˥« ¿ sont ajoutés à la première colonneoledb fichier csv import - personnages étranges: ˥ «¿ajouté

code:

string strConnectionString = string.Format("Provider=Microsoft.jet.OLEDB.4.0;Data  
    OleDbConnection SQLConn = new OleDbConnection(strConnectionString);   
    Source={0};Extended Properties='text;HDR=Yes;FMT=Delimited(,)';", strFile); 
    OleDbCommand selectCMD = new OleDbCommand("select * FROM ["+strFileName+"]") 
    selectCMD.Connection = SQLConn; 
    SQLAdapter.SelectCommand = selectCMD; 
    SQLAdapter.Fill(dtXLS); 

ma fichier commence par le mot forme sans aucun caractère avant. Je reçois le nom de la première colonne datable ˥ «¿Forme pourquoi? Merci.

+0

L'importateur de texte date du siècle dernier. Vous pouvez spécifier un jeu de caractères dans le fichier schema.ini, mais il ne prend en charge que les OEM et ANSI. Utf8 n'est pas pris en charge, tout comme le fournisseur de jet n'a pas été pris en charge au cours des 10 dernières années. Vous pouvez filtrer la nomenclature à partir du nom de la colonne, mais vous aurez toujours un problème avec la récupération des données de terrain. Vous ne pouvez pas l'utiliser. Considérez la classe .NET TextFieldParser. –

Répondre

2

Ce numéro d'encodage - (! Bonne chance googler pour une telle chaîne de caractères) ce que vous voyez est appelé byte order mark

Trouver une façon de changer l'encodage UTF-8 et je soupçonne que ça va allez-vous en.

+0

Comme vous utilisez un pilote Jet (Excel), vous pourriez rencontrer le bug mentionné ici: http://stackoverflow.com/questions/155097/microsoft-excel-mangles-diacritics-in-csv-files – Bridge

+2

Merci beaucoup, j'ai utilisé schema.ini pour résoudre ce problème. [nomfichier.csv] Format = CSVDelimited ColNameHeader = Vrai CharacterSet = 65001 – Liat