Я обновил свой веб-сайт TYPO3 с 4.1 до 6.2.9. Теперь умлаутированные символы [немецкие буквы] не отображаются должным образом. Есть ли идея, чтобы исправить это.
После обновления TYPO3 до 6.2 символы с умлаутом не отображаются должным образом.
Ответы (1)
У меня были похожие проблемы при обновлении с 4.1 до 4.2. Следующие абзацы — заметки из моего блога. Надеюсь, поможет.
Обновление TYPO3 4.1 (и более ранних версий) до 4.2 (и более поздних)
Некоторые поля БД в версии 4.1 имеют тип BLOB (например, шаблоны TS). Большинство этих полей преобразуются в ТЕКСТ в версии 4.2. Теперь подумайте о следующем сценарии, который кажется обычным. Шаблон был сохранен с использованием TYPO3 4.1 и БД с использованием latin1 (ISO-8859-X) в качестве набора символов. Затем БД преобразовалась в UTF-8, и TYPO3 был соответствующим образом настроен. Вы думаете, что закончили, потому что все будет работать. Но в большинстве случаев в полях BLOB все еще есть данные в формате latin1. Вы просто не видите. Как только вы обновите TYPO3 до версии 4.2, эти BLOB-объекты будут преобразованы в TEXT, при условии, что данные имеют кодировку UTF-8. Но это latin1, потому что BLOB раньше не конвертировался. Результат - сломанный шаблон. Многие люди в списках рассылки жалуются на отсутствие целых частей. Причина в недопустимых не ascii-символах (таких как умлауты äöüé¢ и т. д.), которые нарушают представление шаблона.
Как этого избежать?
Если вы меняете кодировку TYPO3 и/или вашей БД, преобразуйте те поля BLOB, которые были бы изменены обновлением TYPO3, в TEXT перед преобразованием кодировки или убедитесь, что данные BLOB преобразованы иначе.
Подробнее о UTF-8 и более ранних версиях TYPO3: https://stmllr.net/blog/thinking-about-utf-8-character-set-conversion-in-typo3/ Лицензия Creative Commons CC BY-SA 3.0
SHOW TABLE STATUS
для проверки сопоставления). На этой странице, на которую я ссылаюсь, содержится вся необходимая информация, но она выходит за рамки того, что было бы приемлемо для переполнения стека, поскольку это проблема конфигурации программного пакета, а не вопрос программирования. - person Jcl   schedule 31.12.2014ü
(правильно закодированное, а не символ юникода, отображаемый с использованием неправильной кодировки). В этом случае помогло экспортировать базу данных с помощью mysqldump с--default-character-set=latin1
, а затем заменить все вхожденияCHARSET latin1
наCHARSET utf8
в дампе. После этого повторный импорт произвел правильную базу данных. Делайте это на копии, конечно. - person Jost   schedule 05.01.2015