В настоящее время я запускаю honeypot для ловли спамеров на форуме, и у меня возникают проблемы с хранением нелатинских символов в моей базе данных, у меня установлен utf8_unicode_ci на уровне базы данных и таблицы, и я использую mysql_query ("SET NAMES 'utf8'"), чтобы убедиться, что информация отправляется как utf8.
Информация, такая как время, хранится как int.IP-адрес, имя пользователя и т. Д. Хранятся в виде Varchar и текста, единственная разница с данными спама заключается в том, что я использую base64_encode (htmlspecialchars ()) перед тем, как вставить данные, и что столбец спама хранится в среднем двоичном объекте, а я использую COMPRESS () в запросе для этого столбца.
С латинскими символами он возвращает правильные данные, но с нелатинскими символами, такими как русский и тайский, он не возвращает правильных данных.
Например,:
Уровня конечного начальники или не
Вернется как:
Ð£Ñ€Ð¾Ð²Ð½Ñ ÐºÐ¾Ð½ÐµÑ‡Ð½Ð¾Ð³Ð¾ начальнÐ
или просто бриллианты с вопросительными знаками на них.
Мне удалось правильно сохранить эту информацию много лет назад, когда я создалфорум, но я не могу вспомнить, как мне удалось правильно его сохранить, я искал весь день и не смог найти решение, которое бы сработало для меня.
Редактировать: дополнительная информация, если она естьhelp.
- Apache / 2.2.14 (Ubuntu)
- Версия клиента MySQL: 5.1.41
- Расширение PHP: php5-mysql