Я создаю инструмент импорта данных для административной части сайта, над которым я работаю. Данные представлены на французском и английском языках и содержат много акцентированных символов. Всякий раз, когда я пытаюсь загрузить файл, проанализировать данные и сохранить их в моей базе данных MySQL, акценты заменяются на «?».
У меня есть текстовые файлы, содержащие данные (кодировка iso-8859-1), которые я загружаю на свой сервер с помощью библиотеки загрузки файлов CodeIgniter. Затем я читаю файл на PHP.
Мой код похож на это:
$this->upload->do_upload()
$data = array('upload_data' => $this->upload->data());
$fileHandle = fopen($data['upload_data']['full_path'], "r");
while (($line = fgets($fileHandle)) !== false) {
echo $line;
}
Это создает строки с акцентами, замененными на '?'. Все остальное правильно.
Если я загружаю свой загруженный файл со своего сервера по FTP, кодировка все еще iso-8850-1, но разница показывает, что файл изменился. Однако, если я открою файл в TextEdit, он будет отображаться правильно.
Я пытался использовать метод PHP stream_encoding
, чтобы явно установить поток файлов в iso-8859-1, но моя сборка PHP не имеет метода.
После исчерпания идей я попытался обернуть мои строки как в utf8_encode
, так и utf8_decode
. Ни один из них не работал.
Если у кого-нибудь есть какие-либо предложения о том, что я мог бы попробовать, я был бы чрезвычайно признателен.