#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.