- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Возникли вопросики некоторые по кодировке сайта и БД. Всегда этому вопросу уделял внимание в рамках "лишь бы работало", а в этот раз хочется сделать по уму. Будем устанавливать CMS (eZ Publish) на выделенный сервер. Сайт русскоязычный, мультиязычность не планируется, таргетинг на РФ. В целом хочется выставить так, чтобы при русскоязычном контенте было как можно меньше гимора. Ну, и чтобы поисковики всё внятно воспринимали, конечно. MySQL, по всей видимости, будет 5.0.x. Итак, вот какие вопросы.
1)Есть ли смысл использовать utf8? Или обойтись cp1251 или win-1251?
2)Допустим, создаем БД в phpMyAdmin. Какие выставить collations?
3)Что еще, кроме имени и сравнения (collation) надо в phpMyAdmin задать при создании новой базы? Там как бы только эти 2 поля и есть вроде, но вообще ведь в MySQL кроме MySQL connection collation есть еще и основная кодировка CHARACTER SET , а надо ли это задавать, и как это через phpMyAdmin задать?
4)Насколько эти значения "железобетонны"? Имеется в виду следующее: перевести, например, MyISAM в InnoDB можно как два файла переслать. А тут, если вдруг выставил что-либо не так, потом на уже созданной базе с русским контентом уже не поменяешь без скриптов-перекодировщиков, иначе всё рачком встанет, или это меняется также легко?
Заранее благодарен.
С уважением, Евгений
1. БД то тут причем? Это вопрос к тому в какой кодировке сайт делать, а кодировку в БД выбирать в зависимости от этого.
А чем cp1251 от win-1251 отличаются?
2. Те, которые Вам нужны, для вашей задачи.
3. Если 2 поля, то только их и можно задать. А вообще базу лучше не через phpMyAdmin создавать, так как желательно приписать базу к какому-либо пользователю.
4. Кодировка mysql по-умолчанию прописана в его конфиге, а в сценарии перед запросами ее можно изменить запросом "set name" и т.п.
vasa_c, спасибо, конечно, за доказатесльтво того, что я в данном вопросе разбираюсь хуже Вас. Если это было целью Вашего поста - Вы ее достигли. Замечу лишь, что разбирался бы хорошо - не спрашивал.
Именно такой вопрос и стоит. В какой кодировке ЛУЧШЕ делать сайт с русским контентом для российской аудитории.
Я как раз и спросил - какие значения collation лучше использовать для ДАННОЙ задачи (см. выше).
Ну, и далее по списку.
Здравствуйте.
1)Есть ли смысл использовать utf8? Или обойтись cp1251 или win-1251?
2)Допустим, создаем БД в phpMyAdmin. Какие выставить collations?
3)Что еще, кроме имени и сравнения (collation) надо в phpMyAdmin задать при создании новой базы? Там как бы только эти 2 поля и есть вроде, но вообще ведь в MySQL кроме MySQL connection collation есть еще и основная кодировка CHARACTER SET , а надо ли это задавать, и как это через phpMyAdmin задать?
Я не настолько тонко знаю MySQL, однако, там существует проблема:
если кодировка, которую выдает СУБД отлична от кодировки в которой все это там лежит, то показываться все будет нормально, програмные средства нонче на высоте, а вот поиск работать будет КРИВО, при поиске по текстовым полям будут выдаваться левые данные.
Так что ставьте 1251 не прогадаете.
iexpert, спасибо. Я обычно именно так и делал, но уже не раз встречал рекомендации пользоваться utf8. Правда, обычно об этом говорится именно в разрезе мультиязычности.
Может ли кто-нибудь сказать, есть ли у этой кодировки другие преимущества? И действительно ли могут иметь место проблемы с поиском по русским словам?
vasa_c, спасибо, конечно, за доказатесльтво того, что я в данном вопросе разбираюсь хуже Вас.
Очень жаль, что из моего ответа вы вынесли только это.
"Сравнения" зависят не от контента сайта а от структуры базы. Если не знаете что ставить - ставьте *_general_ci
utf8 предназначен для многоязычных текстов. На одноязычном он не нужен. Для русского лучше использовать windows-1251.
При разных кодировках входных данных и БД, при подключении к БД указывайте входную кодировку запросом "set names ..." и никаких проблем с поиском не будет.
vasa_c, большое спасибо, теперь стало яснее.
А *_general_ci имеется в виду та, что является основной кодировкой базы? Грубо говоря, если это MySQL 5.0, то там, вроде, по умолчанию стоит utf8 в качестве основной кодировки. И тогда "сравнение" надо ставить именно "utf8_general_ci", или "cp1251_general_ci"?
Кстати, поговорил с админом хостинга, где сервер арендуем, он сказал, что на MySQL 5.0 сделать основной кодировкой 1251 вообще непонятно как. Соответственно, либо надо использовать utf8, либо ставить mysql4.
Вот ссылка неплохая
http://forum.edurm.ru/index.php?act=Print&client=printer&f=51&t=606
А какой кстати php? Если 4-й, то с utf вообще лучше не заморачиваться.
И php ли вообще?
php 4.4, это требование CMS, она с 5-м не работает. А MySQL поставили 5.0.2 пока. За ссылку спасибо.
Вопрос, тем не менее, так и остался. Поскольку это MySQL 5, то сам контент хранится в юникоде utf8. А сопоставление (collation) лучше выставить "utf8_general_ci", или "cp1251_general_ci"?
С уважением, Евгений
Раз контент в юникоде, логично все же сделать collation юникодное и сказать CMS, что у нас все в юникоде (ru_RU.UTF-8, например). Хотя можно и извратиться.