2015-05-22 16 views
5

Tôi viết CSV bằng C# CSVWriter dựa trên StreamWriter. Trong dữ liệu của tôi, tôi có rất nhiều ký tự đặc biệt như "Bávaro".Mã hóa CSV phù hợp cho C# để mở bằng Excel là gì?

Vì vậy, khi tôi sử dụng UTF-8 hoặc ASCII để mã hóa CSV của tôi, tôi không thể nhận được "á" nhưng tôi có thể mở nó trong Excel sau đó hoàn hảo. Khi tôi sử dụng Unicode, CSV của tôi có char chính xác nhưng trên thực tế khi tôi mở CSV này trong Excel, nó không được sắp xếp tự động như CSV khác của tôi, tất cả các giá trị nằm trong cột đầu tiên dưới dạng chuỗi ....

mã hóa đúng ở đây?

+0

Excel có thể mở CSV được mã hóa bằng UTF-8 chỉ với mã hóa chính xác nếu tệp CSV chứa BOM lúc bắt đầu. Unicode được mã hóa Unicode (UTF-16) sẽ chỉ được mở chính xác nếu chúng được phân cách bằng dấu phân cách và không được phân cách bằng dấu phẩy (hoặc dấu chấm phẩy). –

+0

Hãy thử thêm byte tiền tố vào tệp, như tôi đã viết ở đây: https://stackoverflow.com/a/46076517/908936 – razon

Trả lời

2

tôi khuyên bạn nên sử dụng Windows ANSI Codepage 1252 mà bạn có thể nhận được thông qua:

Encoding.GetEncoding(1252) 

Nó hỗ trợ ký tự như "á" và hoạt động tốt từ Excel 2003 sang Excel 2013.

1

Xuất CSV của bạn sử dụng mã hóa này Encoding.GetEncoding("Windows-1252")

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