2009-07-10 12 views
7

Mam następujący plik CSV, który jest używany w moim testów jednostkowych danych napędzane:Testowanie jednostek sterowanych danymi - problem z kodowaniem CSV?

File;expected 
Resources.resx;default 
Resources.de.resx;de 
AttachmentDetail.ascx.it.resx;it 
SomeOtherFile.rm-CH.resx;rm-CH 

„plik” i „oczekiwany” to nagłówek. Ale jeśli chcę uzyskać „Plik” -column w kodzie jak

TestContext.DataRow["File"].ToString(); 

pojawia się błąd

System.ArgumentException: Kolumna „Plik” nie należą do stołu ..

Po dodaniu pliku CSV do istniejącego przypadku testowego nad właściwościami metody testowej wydaje się, że przed nazwą kolumny "Plik" występują dziwne znaki, podobnie jak problem z kodowaniem. Ale jeśli otworzę plik CSV za pomocą Notatnika, Notepad ++ lub nawet TextMate (na Macu), nie widzę takich znaków i nie jestem w stanie się ich pozbyć.

Czy ktoś może dać mi sugestię na temat tego problemu?

+1

Czy mógłbyś powiedzieć, który to jest język? Zakładam C# ... –

Odpowiedz

0

Jakie kodowanie zapisuje plik?

Z tego, co wiem, UTF-8 zapisany w notatniku Windows pokazuje dziwne symbole przed plikiem, aby wiedzieć dokładnie, jakie kodowanie zostało użyte, gdy nie znalazł żadnych symboli potrzebnych do UTF8 (zakładając, że wszystko jest w porządku po prostu ascii)

Czy edytowałeś plik za pomocą Notepad ++ i go zapisałeś? Próbowałbym to zrobić i porównać wyniki.

+0

Było to również moje pierwsze założenie, więc zrobiłem to, co powiedziałeś i zredagowałeś + zapisałeś plik w Notepad ++ ... jednak bez rezultatu. Wściekam się, to byłoby takie proste, po prostu te cholerne znaki. Coś musi być nie tak. – Juri

11

Jeśli edytujesz plik CSV w VS2008 można ustawić sposób plik CSV zostanie zapisany:

„Plik \ zaawansowane Zapisz opcje ...”

w „Kodowanie:” drop domyślną wartością będzie UTF-8. Zmień go na "Wester European (DOS) - strona kodowa 850". Pozostaw sam wybór zakończenia linii.

+0

Thx za podpowiedź, wypróbuję to. – Juri

+2

To zadziałało dla mnie. To prawdopodobnie powinno być oznaczone jako odpowiedź. – jcmcbeth

+0

Świetna rada, to zadziałało dla mnie. Spędziłem około 2 godziny z powodu błędu ArgumentException, dopóki nie znalazłem tego wpisu. Wszystkie moje inne pliki danych CSV działały dobrze, ale 1 nie działało i to był powód. Bardzo dziwny problem. Nie wiem, dlaczego tak się stało w pierwszej kolejności. –