Добрый день. Столкнулся вот с такой проблемой.
Мультиязычный сайт, на нем несколько языков, в том числе и немецкий.
Пытаюсь записать заголовок раздела на немецком, причем в названии есть специфические символы, а имеено:
ü, ö, ä, ß.
Умлауты не хотят записываться в БД, вместо них выскакивает "?".
Причем такая проблема ТОЛЬКО в поле с типов ввода «Text»
поле Textarea (c визуальным редактором) работает нормально.
Кто нибудь сталкивался с подобной проблемой? Буду очень признателен за помощь… Готов заплатить скромную сумму за помощь.
На сайте: кодировка сайта UTF-8
БД: MySQL-кодировка: UTF-8 Unicode (utf8)
Quote from: 039kir at Dec 06, 2010, 08:04 AM
На сайте: кодировка сайта UTF-8
БД: MySQL-кодировка: UTF-8 Unicode (utf8)
Там ещё есть collation-ы всякие + тип соединения (set names/ set charset) - выбирается при установке
Попробовать изменить в конфиге (вместо одного в скобках поставить второй - по идее, правильно должно быть "set names") - возможно, решит проблему.
А в Textarea с TinyMCE скорее всего они преобразуются в HTML-сущности (смотреть, как хранится в базе) - что-то типа:
Еще почитайте о различиях utf_general_ci и utf_unicode_ci.
я так понял, что для того чтоб отображались спец символы кодировка должна быть utf_unicode_ci, поправьте если заблуждаюсь.
а как мне сменить кодировку базы mysql и самого modx? в этих делах особых навыков не имею, к сожалению.
Quote from: AKots at Dec 06, 2010, 08:45 AM
Еще почитайте о различиях utf_general_ci и utf_unicode_ci.
utf8_general_ci вполне нормально
отображает умляуты.
10 Строчка в файле manager/includes/config.inc.php (Evo)
$database_connection_method = 'SET NAMES';
Тонкости выявляются при сравнении-сортировке (когда одна буква ß и две ss "ранжируются" одинаково)
ps.
http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
http://forums.mysql.com/read.php?103,187048,188748
For example, utf8_unicode_ci works fine for German dictionary order and French, so there is no need to create special utf8 collations.
utf8_general_ci also is satisfactory for both German and French, except that “ß” is equal to “s”, and not to “ss”. If this is acceptable for your application, you should use utf8_general_ci because it is faster. Otherwise, use utf8_unicode_ci because it is more accurate.
Версия MySQL? Кодировка базы, сопоставление таблиц (utf8_что-то дальше)?
Как хранятся в базе умляуты? (через phpmyadmin, например, посмотреть?)
После установки ’SET NAMES’ сохранения умляутов в базу были?