Sample code for 30+ languages & platforms
Dart

Write utf-8 CSV Compatible with Excel

See more CSV Examples

A CSV containing non-English characters that is saved using the utf-8 character encoding must include a BOM (also known as a preamble) if it is to be correctly loaded into Excel. See https://en.wikipedia.org/wiki/Byte_order_mark

This example shows how to save the CSV to a file using utf-8 with a BOM.

Note: This example requires Chilkat v9.5.0.93 or later.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example program loads a file (japanese.csv)
  // that contains this content:
  // 
  // year,color,country,food
  // 2001,red,France,cheese
  // 2005,blue,"United States",hamburger
  // 2008,green,Italy,pasta
  // 1998,orange,Japan,sushi
  // 2010,silver,"太志","森田"
  // 

  final csv = CkCsv();
  csv.hasColumnNames = true;
  try {
    csv.loadFile2('qa_data/csv/test.csv', 'utf-8');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // To save the CSV using utf-8 with a BOM/preamble, 
  // add "EMIT_BOM" to the UncommonOptions.
  // (This feature was added in Chilkat v9.5.0.93)

  csv.uncommonOptions = 'EMIT_BOM';
  try {
    csv.saveFile2('qa_output/test.csv', 'utf-8');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('OK, try to load the CSV in Excel to see if the non-English chars are correct.');
}