Support for multiple BOMs depending on the selected encoding

This commit is contained in:
Adrien Loison committed 2015-07-27 09:36:55 -07:00
1 parent 03d1917080
commit d946f12951
7 files changed
+142 -29

No files matched your search

+23 -3
View File
@@ -25,6 +25,9 @@ class Reader extends AbstractReader
/** @var string Defines the character used to enclose fields (one character only) */
protected $fieldEnclosure = '"';
/** @var string Encoding of the CSV file to be read */
protected $encoding = 'UTF-8';
/**
* Sets the field delimiter for the CSV.
* Needs to be called before opening the reader.
@@ -51,10 +54,21 @@ class Reader extends AbstractReader
return $this;
}
/**
* Sets the encoding of the CSV file to be read.
* Needs to be called before opening the reader.
*
* @param string $encoding Encoding of the CSV file to be read
* @return Reader
*/
public function setEncoding($encoding)
{
$this->encoding = $encoding;
return $this;
}
/**
* Opens the file at the given path to make it ready to be read.
* The file must be UTF-8 encoded.
* @TODO add encoding detection/conversion
*
* @param string $filePath Path of the CSV file to be read
* @return void
@@ -67,7 +81,13 @@ class Reader extends AbstractReader
throw new IOException("Could not open file $filePath for reading.");
}
$this->sheetIterator = new SheetIterator($this->filePointer, $this->fieldDelimiter, $this->fieldEnclosure, $this->globalFunctionsHelper);
$this->sheetIterator = new SheetIterator(
$this->filePointer,
$this->fieldDelimiter,
$this->fieldEnclosure,
$this->encoding,
$this->globalFunctionsHelper
);
}
/**