Я не уверен, когда это произошло.
У меня есть новый партнерский веб-сайт для отправки и отправки экспортированной копии каталога продуктов у оптовика. Я форматирую и импортирую это в Prestashop 1.4.4.
На лицевой части веб-сайта содержатся комбинации странных символов внутри текста продукта: Ã, Ã, ¢, â и т.д. Они появляются вместо обычных символов, таких как: -: и т.д.
Эти символы присутствуют примерно в 40% таблиц базы данных, а не только для конкретных продуктов, таких как ps_product_lang.
Другой поток веб-сайта говорит, что эта же проблема возникает, когда строка подключения к базе данных использует неправильный тип кодировки символов.
В/config/setting.inc не упоминается ни одна кодировка символов, а только MySQL Engine, который установлен в InnoDB, который соответствует тому, что я вижу в PHPMyAdmin.
Я экспортировал ps_product_lang, заменил все экземпляры этих символов правильными символами, сохранил CSV файл в формате UTF-8 и повторно импортировал их с помощью PHPMyAdmin, указав UTF-8 как язык.
Однако после выполнения нового поиска в PHPMyAdmin у меня теперь примерно в 10 раз больше экземпляров этих плохих символов в ps_product_lang, чем я начал с.
Если проблема такая же простая, как указание правильного языкового атрибута в строке подключения к базе данных, где/как это установить, и что?
Кстати, я попытался запустить эту команду в PHPMyAdmin, упомянутом в этом потоке, но проблема остается:
SET NAMES utf8
ОБНОВЛЕНИЕ: PHPMyAdmin говорит:
MySQL charset: UTF-8 Unicode (utf8)
Это тот же набор символов, который я использовал в последнем файле импорта, что вызвало больше искажений символов. UTF-8 был указан как кодировка файла импорта во время процесса импорта.
UPDATE2
Вот пример:
люди действительно живут без привязанности, Ãïï † покупка и аренда фильмов онлайн, загрузка программного обеспечения и обмена и хранения файлов в Интернете.
Update3
Я запустил команду SQL в PHPMyAdmin, чтобы отобразить наборы символов:
- character_set_client utf8
- character_set_connection utf8
- character_set_database latin1
- character_set_filesystem двоичный
- character_set_results utf8
- character_set_server latin1
- character_set_system utf8
Итак, возможно, моя база данных должна быть преобразована (или удалена и воссоздана) в UTF-8. Может ли это возникнуть, если сервер MySQL является latin1?
Может ли MySQL обрабатывать перевод обслуживающего контента как UTF8, но хранить его как latin1? Я не думаю, что это возможно, так как UTF8 является надмножеством latin1. Моя поддержка веб-хостинга не ответила через 48 часов. Может быть, слишком сложно для них.