← Quay về trang chủ

Rails | Sửa lỗi Excel không nhận file csv với BOM

Bom viết tắt của Byte Order Mark, được sử dụng để đưa thông tin rằng file của bạn đang được mã hóa Unicode. Bình thường Excel có thể xử lý UTF-8, nhưng thỉnh thoảng nó sẽ không nhận dạng được file của bạn là UTF-8. Và bạn có thể sửa bằng cách thêm BOM vào đầu tập tin csv của bạn.

Ví dụ với khi tạo file csv:

# generate có thể tham số đầu tiên làm mặc định khi tạo file
csv_string = CSV.generate("\uFEFF") do |csv|
  csv << ["ẽxa", "beta", "æm", "Text これは"]
end

CSV.open(filename, "w") do |csv|
  csv.to_io.write "\uFEFF"
  csv << ["ẽxa", "beta", "æm", "Text これは"]
end