Всем доброго времени суток. У мене не давно возникла проблема с кодировкой создаваемого автоматически CSV файла. Изменить кодировку документа я могу через редактор например NotеPad++, но согласитесь это очень тупо и не комфортно всегда заходить и редактировать новый файл. Скажу сразу я этот код не сам писал, а позаимствовал из какогото сайта. Код (Text): class CSV { private $_csv_file = null; /** * @param string $csv_file - путь до csv-файла */ public function __construct($csv_file) { if (file_exists($csv_file)) { //Если файл существует $this->_csv_file = $csv_file; //Записываем путь к файлу в переменную } else { //Если файл не найден то вызываем исключение $str = ''; file_put_contents($csv_file, $str); throw new Exception("Файл ".$csv_file." не було знайдено, но він був створений"); } } public function setCSV(Array $csv) { //Открываем csv для до-записи, //если указать w, то ифнормация которая была в csv будет затерта $handle = fopen($this->_csv_file, "a"); foreach ($csv as $value) { //Проходим массив //Записываем, 3-ий параметр - разделитель поля fputcsv($handle, explode(";", $value), ";"); } fclose($handle); //Закрываем } /** * Метод для чтения из csv-файла. Возвращает массив с данными из csv * @return array; */ public function getCSV() { $handle = fopen($this->_csv_file, "r"); //Открываем csv для чтения $array_line_full = array(); //Массив будет хранить данные из csv //Проходим весь csv-файл, и читаем построчно. 3-ий параметр разделитель поля while (($line = fgetcsv($handle, 0, ";")) !== FALSE) { $array_line_full[] = $line; //Записываем строчки в массив } fclose($handle); //Закрываем файл return $array_line_full; //Возвращаем прочтенные данные } } try { $csv = new CSV("ox2.csv"); //Открываем наш csv /** * Чтение из CSV (и вывод на экран в красивом виде) */ echo "<h2>CSV до записи:</h2>"; $get_csv = $csv->getCSV(); foreach ($get_csv as $value) { //Проходим по строкам for($i=0;$i<count($value);$i++){ echo "Значення $i " . $value[$i] . "<br>"; } } /** * Запись новой информации в CSV */ $arr = array("Значення 1;Значення 2;Значення 3", "Значення 1;Значення 2;Значення 3"); $csv->setCSV($arr); } catch (Exception $e) { //Если csv файл не существует, выводим сообщение echo "Ошибка: " . $e->getMessage(); } Поэтому хотелось бы доделать и пользоваться удобным и качественным кодом. Но какая функция это делает я пока не нашел поэтому если это реально, подкиньте пожалуйста ссылку или название функции и я дальше сам разберусь заранее спасибо.