Как предотвратить сохранение не-ascii символов в базе данных Drupal? - PullRequest
0 голосов
/ 30 июня 2010

Я заметил, что в Drupal после того, как некоторые пользователи вводят контент в тело узла, такие символы, как кавычки и апострофы, сохраняются как: â € ™ â € œ

Это связано с тем, что пользователь вводит нечетные символы или что-то в этом роде ...

  1. Означает ли это, что база данных Drupal не был настроен для utf8?
  2. Как это можно исправить, так что на самом деле сохраняется как просто '?

UPDATE Оказывается, в моем случае декодированные символы были результатом моей загрузки дампа базы данных Drupal mysql, который был сохранен как ascii, и загрузки его в Mysql для повторного заполнения базы данных. Это происходило дважды, один раз, когда я перенес хостинг, и второй раз, когда я испортил БД и пришлось восстанавливать вручную.

Решение заключается в том, что вы используете модуль резервного копирования и миграции Drupal и загружаете файл резервной копии, и вам необходимо восстановить его вручную, чтобы преобразовать файл в блокноте или любом другом файле из ascii в utf8. Я проверил это, и это работает.

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

’ “ - это кодировка UTF-8 ’ “, неверно истолкованная как windows-1252 (, а не латиница-1).

Означает ли это, что база данных Drupal не был настроен для utf8?

Это одна возможность. Другие:

  • Программа, которая помещает данные в базу данных, не работает.
  • Программа, которая извлекает данные из базы данных, не работает.
0 голосов
/ 30 июня 2010
  1. Означает ли это, что база данных Drupal не настроена для utf8?

Я бы сказал, что наиболее вероятно, что таблицы базы данных установлены на latin1. Взглянуть. В качестве альтернативы может также оказаться, что база данных connection не имеет кодировки UTF-8 (иногда помогает отправка запроса SET NAMES utf8;).

...