2013-09-05 42 views
7

Tôi đang đọc trong tệp CSV và mọi thứ đều hoạt động chính xác. Tất cả các trường sẽ đến đúng vị trí nhưng nó đang chuyển đổi ® thành .FileHelpers - Cách đọc trong ký tự ®?

var engine = new FileHelperEngine(typeof(T)); 
return engine.ReadStream(new StreamReader(stream)) as T[]; 

Bất kỳ ý tưởng nào về cách ngăn điều này xảy ra?

EDIT:

Với sự giúp đỡ của người tiêu tiền tôi để làm việc này:

var engine = new FileHelperEngine(typeof(T), Encoding.UTF8); 
return engine.ReadStream(new StreamReader(stream, Encoding.UTF8)) as T[]; 

tôi phải thiết lập mã hóa ở cả hai nơi này để làm việc. Nếu không, tôi thấy kết quả lạ.

+2

Bạn đang sử dụng mã hóa nào? –

+3

Đọc "** [Tối thiểu tuyệt đối mọi nhà phát triển phần mềm hoàn toàn, tích cực phải biết về Unicode và bộ ký tự (không có lý do!)] (Http://www.joelonsoftware.com/articles/Unicode.html) **" của Joel Spolsky. –

+0

Thử sử dụng mã hóa UTF8 khi đọc. – user65439

Trả lời

6

Đặt mã hóa thích hợp trên Trình quản lý luồng của bạn.

http://msdn.microsoft.com/en-us/library/ms143456.aspx

+0

Tôi đã thay đổi Mã hóa trên EngineHelpers Engine, tôi sẽ cố gắng thay đổi nó trên luồng ngay bây giờ. –

+3

Đó là một phương pháp được gọi tên đáng ngờ có tên là 'ReadStream', trên thực tế, không đọc luồng. – spender

+0

làm việc cho tôi. Cảm ơn rất nhiều!! –

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