Я хочу дать пользователю возможность импортировать CSV-файл в мою систему php / mysql, но у меня возникли некоторые проблемы с кодировкой, когда русский язык является лучшим, который можно хранить только в UTF-16 файлах с вкладками.
Сейчас моя база данных находится на латинице 1, но я изменю это на utf-8, как описано в вопросе "a-script-to-change-all-tables-and-fields-to-utf-8-bin" -collation-в-MySQL "
Но как мне импортировать файл? и хранить строки?
Должен ли я, например, перевести его в html_entitites?
Я использую команду fgetcsv
, чтобы получить данные из файла CSV.
Мой код выглядит примерно так прямо сейчас.
file_put_contents($tmpfile, str_replace("\t", ";", file_get_contents($tmpfile)));
$filehandle = fopen($tmpfile,'r');
while (($data = fgetcsv($filehandle, 1000, ";")) !== FALSE) {
$values[] = array(
'id' => $data[0],
'type' => $data[1],
'text' => $data[4],
'desc' => $data[5],
'pdf' => $data[7]);
}
Как отмечается, если я сохраняю файл xls в формате csv в excel, я заменяю специальные символы на '_', поэтому единственный способ получить русские символы из файла - это сохранить файл в Excel как отдельный файл с вкладками в формате UTF16.