Проблема с кодировкой при импорте польских символов в CSV

#php #mysql #encoding #utf-8 #locale

#php #mysql #кодирование #utf-8 #локаль #язык

Вопрос:

У меня есть fopen()/fgetcsv() PHP-скрипт, загружающий UTF8 файл с польскими символами. Затем я сохраняю эту строку в базе данных mysql. Иногда я получаю неработающие символы в БД и при выводе, иногда я получаю хорошие. запускаемый скрипт остается неизменным.

сервер LC_ALL и язык — это utf8 ; (я даже явно setlocale в PHP на всякий случай)
сопоставление подключений к серверу — это utf8 ;
сопоставление таблиц — это utf8 ;
сопоставление базы данных — это utf8 ;
кодировка файла — это utf8 ;
браузер открывает страницу в utf8 ;

Что может вызвать такое непоследовательное поведение?
Сначала он плохо импортирует. Затем при последующем запуске большинство строк хорошо переназначаются. При третьем и четвертом запуске все остальные строки также импортируются хорошо. Но затем, через несколько дней, я снова получаю плохие символы.

Комментарии:

1. То есть вы пытаетесь сказать, что один и тот же ввод может давать разный результат? Если нет, то, пожалуйста, приведите пример ввода и поврежденного вывода, который выдается при извлечении значения из базы данных.

2. Karty pamięci иногда сначала выдает Karty pamiÄ™ci , но при последующем импорте выдает Karty pamięci . Бьюсь об заклад, что если я снова разрешу импортировать файл сейчас, Karty pamiÄ™ci станет Karty pamięci . В файле есть другие строки, поэтому, возможно, дело доходит до определенного момента, а затем он начинает плохо себя вести. остальная часть файла также является польскими строками.

3. Также это может быть проблема с самим терминалом в том смысле, что он неправильно представляет данные, отправляемые ему базой данных, потому что терминал не имеет правильного набора кодировок символов. Не могли бы вы попробовать это на другом компьютере? Как именно вы получаете доступ к базе данных, например, phpmyadmin, командной строке в Windows?

4. Вывод находится в браузере .. для проверки данных в БД я использую pma.