Author Topic: Проблема с кодировкой в клиентской части  (Read 42273 times)

0 Members and 3 Guests are viewing this topic.

Tvaruga

  • Full Member
  • ***
  • Posts: 9
Меня просто удивляет. я ставил данное расширение на три сайта. в связке с джумлой и друпалом.  все было хорошо.


но сейчас. я не могу понять. Так мне просто подождать какого либо решения? или что посоветуете? или таблицы в 1251 переконвертить?

MSK

  • Native
  • *****
  • Posts: 61
я ставил данное расширение на три сайта. в связке с джумлой и друпалом.  все было хорошо.

Тогда сравнивайте настройки базы и самого скрипта.
« Last Edit: September 11, 2011, 09:16:46 PM by Inspirer »

Galina

  • Full Member
  • ***
  • Posts: 5
Везде нормальный русский, кроме списка посетителей в админке, там кракозябы :(
Подскажите, где исправить. Пожалуйста.
Кодировка везде ср1251
« Last Edit: April 19, 2011, 04:01:10 PM by Galina »

MSK

  • Native
  • *****
  • Posts: 61
Поставьте "автоопределение" кодировки в браузере.
« Last Edit: September 11, 2011, 09:17:28 PM by Inspirer »

Galina

  • Full Member
  • ***
  • Posts: 5
Поставьте "автоопределение" кодировки в браузере.

Нет, не помогает :(

MSK

  • Native
  • *****
  • Posts: 61
Точно проблема со списком ПОСЕТИТЕЛЕЙ, а не ОПЕРАТОРОВ?
« Last Edit: September 11, 2011, 09:17:55 PM by Inspirer »

Galina

  • Full Member
  • ***
  • Posts: 5
Точно проблема со списком ПОСЕТИТЕЛЕЙ, а не ОПЕРАТОРОВ?
Точно. С операторами все нормально.

Inspirer

  • Mibew Project founder
  • Native
  • *****
  • Posts: 262
    • Mibew Messenger
1. Нужно переменные $webim_encoding и $dbencoding обязательно выставлять в одинаковое значение (одна из них для mysql, другая для mibew).
2. Они должны быть выставлены до создания таблиц (чтобы те получили collation = cp1251_general_ci)
3. Если поменять значения этих переменных на "живой" базе - ее содержимое превратится в иероглифы.

Как правильно выставить везде cp1251:
1. locales/ru/properties
output_charset=cp1251
output_encoding=cp1251
2. libs/config.php
$home_locale = "ru"; /* native name will be used in this locale */
3. (там же)
$webim_encoding = "cp1251";
$dbencoding = "cp1251";

Минусы использования cp1251 в базе:
- Если вам в чат положат символы, не попадающие в cp1251, сообщение обрежется на первом таком символе.
Например, захотите вы написать немецкое слово Strasse, а пошлется только Stra
- Я бы категорически НЕ рекомендовал применять пункт 3. История в чате всегда живет в utf-8 (особенность передачи данных в html/js), без примененного 3-го пункта все страницы сайта будут в cp1251, кроме истории чата.
- Более того, не вижу необходимости вообще использовать cp1251, кроме случая когда хостинг принудительно выставляет кодировку.
« Last Edit: April 20, 2011, 07:57:58 PM by Inspirer »

Galina

  • Full Member
  • ***
  • Posts: 5
Все установлено именно так, как вы рекомендуете.
- Более того, не вижу необходимости вообще использовать cp1251, кроме случая когда хостинг принудительно выставляет кодировку.
Я бы с удовольствием использовала utf-8, но сайт, куда установлен webim, сделан давно в ср1251, причем, кодировка установлена на стороне провайдера. Сейчас я уже могу выбрать сама, но для этого нужно конвертировать весь сайт, а как это делать, я пока не знаю, да и боязно.

Quote
История в чате всегда живет в utf-8 (особенность передачи данных в html/js), без примененного 3-го пункта все страницы сайта будут в cp1251, кроме истории чата.
С историй у меня тоже все нормально. Только список посетителей не хочет показываться нормально. Чат тоже был сначала кракозябами, но я поправила непосредственно в файле chat.php - заменила utf8 на ср1251

Inspirer

  • Mibew Project founder
  • Native
  • *****
  • Posts: 262
    • Mibew Messenger
Попробуйте на пустой базе данных. Для этого нужно в файле libs/config.php выставить $mysqlprefix в любое непустое значение и еще раз запустить инсталяцию. Потом можно вернуться к предыдущему состоянию убрав mysqlprefix.

Если единственное что вам мешает это кодировка на стороне провайдера - оставьте базу в UTF-8.

Можно попробовать поиграть с кодировкой в списке посетителей. Отредактируйте update.php. Там нужно найти вызов myiconv. Попробуйте разные сочетания кодировок из "cp1251" и "utf-8" (вставляйте прямо строчками).

А что конкретно вы поменяли в chat.php? Думаю, что не стоило, и проблема где-то рядом :)

PS: 2MSK список операторов я поправил и положил в v1.6.x ветку

Galina

  • Full Member
  • ***
  • Posts: 5
Quote
Отредактируйте update.php.

УРА!!! Получилось!
Примите мою огромную благодарность :)
« Last Edit: April 21, 2011, 03:45:29 PM by Galina »

MSK

  • Native
  • *****
  • Posts: 61

PS: 2MSK список операторов я поправил и положил в v1.6.x ветку
Оки.
Я в личку еще накидал идей.
« Last Edit: September 11, 2011, 09:18:35 PM by Inspirer »

MSK

  • Native
  • *****
  • Posts: 61
Вот, кстати, отображение этого форума в Хроме.
Настройки Хрома "по умолчанию".
« Last Edit: September 11, 2011, 09:19:26 PM by Inspirer »

smokeless

  • Jr. Member
  • **
  • Posts: 1
Guys, I have been posted a few replies on this forum but they keep disappearing, Any ideas why? Thanks!

MSK

  • Native
  • *****
  • Posts: 61
Apparently they are not interested or already in progress.
Any ideas?
« Last Edit: September 11, 2011, 09:19:49 PM by Inspirer »