Странные символы в тексте базы данных: Ã, Ã, ¢, â' €,

Я не уверен, когда это впервые произошло.

У меня новый партнерский сайт дропшиппинга, и я получаю экспортированную копию каталога товаров от оптовика. Я форматирую и импортирую его в 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 у меня теперь в ps_product_lang примерно в 10 раз больше экземпляров этих плохих символов, чем в начале.

Если проблема настолько проста, как указание правильного атрибута языка в строке подключения к базе данных, то где/как мне его установить и что для этого нужно?

Кстати, я попробовал выполнить эту команду в PHPMyAdmin, упомянутую в этой теме, но проблема осталась:

SET NAMES utf8

UPDATE: PHPMyAdmin говорит:

MySQL charset: UTF-8 Unicode (utf8)

Это тот же набор символов, который я использовал в последнем файле импорта, что вызвало больше повреждений символов. UTF-8 был указан в качестве charset файла импорта во время процесса импорта.

UPDATE2

Вот пример:

Люди действительно живут без привязиÃÆ'Ã'¢Ã¢ââ'¬Å¡Ã'¬Ã¯ââ'¬Â Ã'ï† покупая и беря напрокат фильмы онлайн, скачивая программное обеспечение, а также обмен и хранение файлов в Интернете.

UPDATE3

Я выполнил SQL-команду в PHPMyAdmin для отображения наборов символов:

  • character_set_client utf8
  • character_set_connection utf8
  • character_set_database latin1
  • character_set_filesystem binary
  • character_set_results utf8
  • character_set_server latin1
  • character_set_system utf8

Итак, возможно, мою базу данных нужно преобразовать (или удалить и создать заново) в UTF-8. Может ли это создать проблему, если сервер MySQL - latin1?

Может ли MySQL справиться с переводом содержимого в UTF8, но хранить его в latin1? Не думаю, что сможет, так как UTF8 - это супермножество latin1. Служба поддержки моего хостинга не отвечает уже 48 часов. Возможно, это слишком сложно для них.

26
задан Community 13 April 2017 в 12:33
поделиться