Author Topic: Кодировка utf8 для русского языка  (Read 24033 times)

0 Members and 1 Guest are viewing this topic.

popovich_ai

  • Full Member
  • ***
  • Posts: 10
Кодировка utf8 для русского языка
« on: March 17, 2011, 11:07:45 AM »
Подскажите пожалуйста, кто знает.

Для установленной русской локализации в админской части все даты отображаются вместо названий месяцев кракозяброй. Как такое починить? Я понимаю, что нужно какой-то файл перебить в кодировку utf8, но не могу понять, что это за файл будет?
« Last Edit: March 17, 2011, 11:21:01 AM by popovich_ai »

Inspirer

  • Mibew Project founder
  • Native
  • *****
  • Posts: 262
    • Mibew Messenger
Re: Кодировка utf8 для русского языка
« Reply #1 on: March 17, 2011, 08:41:39 PM »
Проблема в установленных локалях на сервере. По умолчанию, для русского используется ru_RU.UTF-8.

Чтобы поменять: Управление -> Локализация -> строка time.locale

Например, у меня доступны следующие локали:

~$ locale -a | grep ru
ru_RU
ru_RU.CP1251
ru_RU.CP866
ru_RU.ISO8859-5
ru_RU.KOI8-R
ru_RU.UTF-8

popovich_ai

  • Full Member
  • ***
  • Posts: 10
Re: Кодировка utf8 для русского языка
« Reply #2 on: March 18, 2011, 10:51:56 AM »
странно, но у меня только такое:

ru_RU  и все:(

Inspirer

  • Mibew Project founder
  • Native
  • *****
  • Posts: 262
    • Mibew Messenger
Re: Кодировка utf8 для русского языка
« Reply #3 on: March 18, 2011, 11:37:32 AM »
1. Можно доставить локалей (зависит от сервера).
2. Можно поставить en_US (только месяца/дни недели будут по английски)
3. libs/common.php, примерно, строка 549:

 return strftime($date_format." ".getlocal("time.timeformat"), $unixtime);

поменять на

 return myiconv("cp1251", "utf-8", strftime($date_format." ".getlocal("time.timeformat"), $unixtime));

Если не поможет, можно попробовать поменять cp1251 на другие кодировки, но только если у вас в PHP установлен iconv. Это видно на странице обновления, у меня так:

Окружение:
PHP 5.2.9 mysql/1.0 gd iconv


popovich_ai

  • Full Member
  • ***
  • Posts: 10
Re: Кодировка utf8 для русского языка
« Reply #4 on: March 18, 2011, 11:55:25 AM »
Сделал проще - заменил буквенное отображение на цифровое:

Code: [Select]
return date('d.m.Y H:i', $unixtime);
Теперь бы еще найти, в каком файле выводится дата для фильтрации статистики, чтобы и там такое же поставить...

SergLI

  • Full Member
  • ***
  • Posts: 5
Re: Кодировка utf8 для русского языка
« Reply #5 on: March 23, 2011, 07:18:48 AM »
Доброго дня всем,
Я думаю, что вопрос из этой же темы: Как и где можно правильно перекодировать время на местное часовое время (напр. мне нужно GMT+02:00) вместо часового пояса сервера (именно для этой проги имею ввиду)?
Буду очень признателен за подсказку  :)

MSK

  • Native
  • *****
  • Posts: 61
Re: Кодировка utf8 для русского языка
« Reply #6 on: March 23, 2011, 08:42:01 AM »
В админке, если имена операторов на русском языке и кодировка 1251 - в списке ператоров онлайн кракозябры.
и нет в шаблонах:
<meta http-equiv="Content-Type" content="text/html; charset=XXXXX" />
« Last Edit: March 23, 2011, 12:46:58 PM by MSK »

fade

  • Jr. Member
  • **
  • Posts: 2
Re: Кодировка utf8 для русского языка
« Reply #7 on: April 10, 2012, 02:02:52 PM »
Теперь бы еще найти, в каком файле выводится дата для фильтрации статистики, чтобы и там такое же поставить...

Так никто и не нашел решения?