setOutputBOM(Writer::BOM_UTF16_LE); // we register a Transcode Filter class to convert the CSV into the proper encoding charset stream_filter_register(FilterTranscode::FILTER_NAME."*", "\lib\FilterTranscode"); $writer->appendStreamFilter(FilterTranscode::FILTER_NAME."UTF-8:UTF-16LE"); //we set the tab as the delimiter character $writer->setDelimiter("\t"); //we insert csv data $writer->insertAll($csv); //let's switch to the Reader object //Writer::output will failed because of the open mode //The BOM settings are all copied to the Reader object $reader = $writer->newReader(); $reader->output('toto-le-heros.csv');