- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер, проблема в следующем.
Необходимо записывать данные получаемые от API Вконтакте в базу данных MySQL. Данные передаются в кодировке windows-1251. Проблема в том, что в данных встречаются смайлы emoji и при записи в базу данных некоторые смайлы отображаются в виде знаков вопроса. MySQL имеет тип полей, сравнение базы и таблицы в кодировке utf8mb4_general_ci, которая как раз подходит для сохранения такого типа данных (4 байта на символ). Что я только не перепробовал. Либо текст сохраняется нормально, а смайлы в нем в виде знаков вопроса, либо все сохраняется в полном объеме, но в виде кракозябр.
Надеюсь на Вашу помощь, может быть кто-то сталкивался с подобной проблемой?
Сохраняем вторым способом, но при запросе к БД на вставку устанавливаем значение кодировки, выполнив запросы
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
Спасибо за ответ. Попробовал сделать всё так, к сожалению, результат записаный в БД выглядит следующим образом:
рџЄрџІрџ’‚💂👦🙉🙉🙈🚖🚄🎠💒🚢🚝🚐🗿㊙🔄🔄🔕📃🎼🎵🎾🎱 Р*то тестовая запись
т.е. в кодировке cp1251
В оригинале это было:
"
---------- Добавлено 14.09.2014 в 08:14 ----------
Вот даже на форуме не отображается сообщение с emoji ))
А смотрите результат вы через phpmyadmin или тем же php-скриптом выводите?
У меня на одном сайте, если в базу через phpmyadmin залезть - тоже аналогичный текст можно увидеть, а на сайте всё ок и добавляется и показывается.
т.е. в кодировке cp1251
Это utf8 который отображается как cp1251. Вы либо не правильно смотрите данные, либо на как-то шаге у вас ломается кодировка.
При вставке - SET NAMES 'utf8'
При чтение - SET NAMES 'utf8'
При отображение - header('Content-type: text/html; charsetr=utf-8');
При отображение - header('Content-type: text/html; charsetr=utf-8');
Лишний символ в директиве.
А смотрите результат вы через phpmyadmin или тем же php-скриптом выводите?
У меня на одном сайте, если в базу через phpmyadmin залезть - тоже аналогичный текст можно увидеть, а на сайте всё ок и добавляется и показывается.
Спасибо за наводку! :)
Действительно в PHP My admin выводится все в кракозябрах, но если вывести данные на страницу из базы, все получается как надо. Меня это устраивает
Это utf8 который отображается как cp1251. Вы либо не правильно смотрите данные, либо на как-то шаге у вас ломается кодировка.
При вставке - SET NAMES 'utf8'
При чтение - SET NAMES 'utf8'
При отображение - header('Content-type: text/html; charsetr=utf-8');
Благодарю за ответ, всё поправил :)