2009-07-10 30 views
7

Tôi có tập tin sau CSV được sử dụng trong thử nghiệm đơn vị dữ liệu-driven tôi:Thử nghiệm đơn vị theo hướng dữ liệu - Sự cố với mã hóa CSV?

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

"File" và "dự kiến" là tiêu đề. Nhưng nếu tôi muốn để có được những "File" -column trong các mã như

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

tôi nhận được lỗi

System.ArgumentException: Cột 'File' không thuộc về bảng ..

Khi tôi thêm tệp CSV vào trường hợp thử nghiệm hiện có trên thuộc tính phương pháp thử nghiệm, có vẻ như cột "Tệp" có một số dấu hiệu lạ trước tên của nó, giống như một vấn đề về mã hóa. Nhưng nếu tôi mở tệp CSV bằng Notepad, Notepad ++ hoặc thậm chí TextMate (trên Mac), tôi không thấy bất kỳ dấu hiệu nào như vậy và tôi không thể loại bỏ chúng.

Ai đó có thể cho tôi đề xuất về vấn đề này không?

+1

Bạn có phiền không nói ngôn ngữ đó là gì? Tôi giả sử C# ... –

Trả lời

0

Tệp nào đang lưu tệp?

Từ những gì tôi biết, UTF-8 được lưu trong cửa sổ notepad sẽ hiển thị một số biểu tượng lạ trước tệp để biết chính xác mã hóa nào được sử dụng khi không tìm thấy bất kỳ ký hiệu nào cần thiết cho UTF8 (giả sử mọi thứ just plain ascii)

Bạn có chỉnh sửa tệp bằng Notepad ++ và lưu không? Tôi sẽ thử làm điều đó và so sánh kết quả.

+0

Đó cũng là giả định đầu tiên của tôi và vì vậy tôi đã làm như bạn đã nói và chỉnh sửa + lưu tệp bằng Notepad ++ ... tuy nhiên không có kết quả. Tôi phát điên, nó sẽ đơn giản như vậy, chỉ là những dấu hiệu chết tiệt đó. Cái này chắc phải có cái gì đó trục trặc. – Juri

11

Nếu bạn chỉnh sửa các tập tin CSV trong VS2008 bạn có thể thiết lập cách các tập tin CSV sẽ được lưu:

"File \ Save Options nâng cao ..."

Trong mục "Encoding:" thả xuống mặc định sẽ là UTF-8. Thay đổi nó thành "Tây Âu (DOS) - Mã 850". Để riêng lựa chọn kết thúc dòng.

+0

Thx cho gợi ý, tôi sẽ thử nó. – Juri

+2

Điều này làm việc cho tôi. Điều này có lẽ nên được đánh dấu là câu trả lời. – jcmcbeth

+0

Mẹo tuyệt vời, điều này làm việc cho tôi. Đã dành khoảng 2 giờ stuggling với lỗi ArgumentException cho đến khi tôi tìm thấy bài đăng này. Tất cả các tệp dữ liệu CSV khác của tôi hoạt động tốt nhưng 1 đã không và đây là lý do. Rất kỳ quặc. Không chắc chắn tại sao nó lại xảy ra ngay từ đầu. –

Các vấn đề liên quan