Извините меня, идиота. Я перепутал htmlentities и htmlspecialchars. Если экранировать строку через htmlspecialchars, то весь текст в БД идет вопросиками (Добавление)
Уж точно идиот. Если бы я изначально думал мозгами (не путал бы функции), то проблемы бы не было. Убрал добавленную строчку
В HTML сущность они ее превращают, я сначала кинул тот вариант, который отображался в браузере + этот. А потом заглянул в "Исходный код" страницы и увидел, что там такие символы. Так что в базе хранятся и выводятся строки в таком виде
Прошу прощения за не сильно содержательное название, но там много описывать для одной строки. К делу:
Есть БД в utf8_general_ci, таблицы в ней такие же. Скрипты, которые взаимодействуют со всем этим добром аналогично в UTF8, текст набирается и отправляется со страницы в этой же кодировке. В базу текст попадает уже в таком виде: КодиÑ...
У меня такое дело уже второй раз. До этого так и не разобрался.
Еще что странно, команда date |file -i %filename% выводит us-ascii. Напрягает, но сохранял скрипты я точно в UTF8
не помогло (Добавление)
все, я сделал по другой схеме, все нормально заработало. папку вернул на место, а ссылку создал в /home/andrey. мне главное было, чтобы dropbox заливал, а он умеет заливать по ссылкам
Сделал символьную ссылку в /var/www на /home/andrey/www, а если после этого попытаться открыть http://localhost, то возвращает forbidden. Владельцем папки /home/andrey/www являюсь я, но права на чтение-запись даны всем пользователям. В чем тут может быть дело? Может ссылку стоило по-другому создать?
phpinfo() показывает, что модуль подключен, показывает параметры установленные. Но когда я попробовал вызвать заведомо несуществующую функцию, мне никто ничего не выдал. Встроенный дебаггер PHP я отключил.
как вызываю
раньше все работало, часть, которая работает с БД не менялась, но началась такая фигня. Причем только в этом месте кода, остальное работает. И только на этом сервере, на локалхосте нормально работает.
Есть скрипт, который через форму отправляет данные в MySQL (через mysqli, если важно). я прослеживал переменную, которая вводится, до входа в БД она остается в правильной кодировке. Но из БД уже выходят странные кодировки. Если на localhost'е просто менялась кодировка, но кол-во символов и их порядок оставались правильными, то на хостинге уже совсем жуть: в базе оказывается пара-тройка символов в ASCII-кодах (если не ошибаюсь). Причем символов, которых у меня в тексте и в помине не было.
При этом стоит отметить, что другая форма, которая работает по полностью аналогиной системе с этой же базой, работает исправно.