Перейти к контенту

Кодировка


theIggs

Рекомендуемые сообщения

Ы...еще такой глюк, что не отображаются буквы "К" и "Р" и еще какие-то...появилось после перехода с MySQL 4 -> 5 с IPB 2.1.7 -> 2.2.0

Это фиксется в админке! Юзайте поиск я тут нашел решение этог она форуме где-то.

Ссылка на комментарий
Поделиться на других сайтах

Были проблемы с кодировкой, вроде исправил, но как оказалось не полностью. Сейчас наблюдаются единичные случаи с не правильной кодировкой при отображении страницы у пользователей. Почему то у некоторых кодировка по умолчанию ставится как KOI-8R, хотя у меня в начале каждой страницы прописана Windows 1251, и им при переходе с каждой страницы приходится её менять. Звонил хостеру - сказали что стоит win1251. В чем может быть проблема?
Ссылка на комментарий
Поделиться на других сайтах

У меня проблма, когда я пытаюсь зайти Админка-Управление ограничениями АЦ-"Выбираю чела и жму Управление ограничениями доступа" То на этой перемещаемой страничке появляютс якакието иероглифы. Причем, на моем компе под Денвер-2 все работает норм. Как поминять?
Ссылка на комментарий
Поделиться на других сайтах

2Master

 

форум 2.2.1

перечитал все с самого начала. делал поиск в сорцах и поменял все на windows-1251

но не отображается правильная кодировка в помошнике, в поп-ап пм, и при отображении профайла пользователя в разделе "сообщения" и "топики" ( в заголовках )

 

помогло только добавление строки header("Content-Type: text/html; Charset=windows-1251"); в индекс.. строки которые вообще не хотели переводится стали нормально видны, но при этом слетели некоторые стили и выбило

 

IPB WARNING [2] Cannot modify header information - headers already sent by (output started at /home/observ/public_html/forum/index.php:2) (Line: 193 of /ips_kernel/class_ajax.php)
IPB WARNING [2] Cannot modify header information - headers already sent by (output started at /home/observ/public_html/forum/index.php:2) (Line: 194 of /ips_kernel/class_ajax.php)
IPB WARNING [2] Cannot modify header information - headers already sent by (output started at /home/observ/public_html/forum/index.php:2) (Line: 195 of /ips_kernel/class_ajax.php)
IPB WARNING [2] Cannot modify header information - headers already sent by (output started at /home/observ/public_html/forum/index.php:2) (Line: 196 of /ips_kernel/class_ajax.php)
IPB WARNING [2] Cannot modify header information - headers already sent by (output started at /home/observ/public_html/forum/index.php:2) (Line: 197 of /ips_kernel/class_ajax.php)

 

на этих строках стоит

header("HTTP/1.0 200 OK");

header("HTTP/1.1 200 OK");

header("Cache-Control: no-cache, must-revalidate, max-age=0");

header("Expires: 0");

header("Pragma: no-cache");

 

может можно как-то прямо в этих хеадерах прописать кодировку ?

 

на этих строках стоит

header("HTTP/1.0 200 OK");

header("HTTP/1.1 200 OK");

header("Cache-Control: no-cache, must-revalidate, max-age=0");

header("Expires: 0");

header("Pragma: no-cache");

 

может можно как-то прямо в этих хеадерах прописать кодировку ?

 

 

Update: так и сделал - добавил в файл

/ips_kernel/class_ajax.php

под

header("Pragma: no-cache");

строку

header("Content-Type: text/html; Charset=windows-1251");

 

починился профайл пользователя в 2.2.1

Ссылка на комментарий
Поделиться на других сайтах

Сделайте аналогичный update в других файлах, ./sources/action_public/xmlout.php и ./sources/profile_portal_prugins/*
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
У меня такой вопрос: реально ли вообще без лишних извращений (типа изменить в 20 файлах по 30 строк кода) настроить IPB в кодировке UTF-8. На сколько я понял по сообщениям форума в этом случае возникают проблемы с отображением русских сообщений, длиной заголовков и т.п. Сам поюзал обнуленный IPB 2.2 (извиняйте-другой возможности потестить продукт на своей конфигурации не нашел :D ) - были глюки с регистрацией имен пользователей на русском, т.е. такой юзер регится, входит в форум, но его ник не отображается-в этом месте просто пробелы. У меня складывается впечатление, что IPB вообще не заточен под работу с юникодом и разработчики не спешат устранять этот косяк. Поиск в русской сети IPB в UTF-8 тоже результатов не принес. Очень жаль, хотя надеюсь, что я ошибаюсь. Кто может поделится опытом?
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
У меня такой вопрос: реально ли вообще без лишних извращений (типа изменить в 20 файлах по 30 строк кода) настроить IPB в кодировке UTF-8. На сколько я понял по сообщениям форума в этом случае возникают проблемы с отображением русских

 

Если отвечать коротко - нереально.

 

Но если есть руки, то можно. Примеры известны.

Опять же, в общих словах:

1. Ставится php с поддержкой многобайтовых кодировок. Дефолтной кодировкой прописывается utf

2. Настраивается субд, тоже с дефолтной кодировкой utf

3. Правятся скрипты форума. Это уже все зависит. В последней версии, например, 2.3.1, некорректно кодируются почтовые заголовки.

NB Вообще-то, править исходники форума в любом случае полезно, поскольку попутно можно решить многие проблемы безопасности. Но это отдельная песня.

 

4. Пишутся сообщения на нужных языках. Проще это делать средствами самого форума, а не искать готовые локализации.

 

Ну и все.

Ссылка на комментарий
Поделиться на других сайтах

Если отвечать коротко - нереально.

Да, похоже придется оставить эту затею. Купил лицензию на IPB. Первое же горькое разочарование: куча файлов, где тупо вшита win-1251. Зачем, спрашивается, тогда при установке форума и в АЦ указывать кодировку, если потом по поиску "charset=windows-1251" выдает более 70 файлов. При простой конвертации всех файлов форума в утф-8 даже главная страница корректно не отображается.

 

Возмутительная ситуация. Всё больше движков переходит на юникод как на дефолтную кодировку, а уважаемые программеры IPB делают вид, что ее в природе нет. Скоро IPB даже с самой заурядной CMS нельзя бутет интегрировать, не говоря уже про монстров типа MediaWiki. Самое поразительное, что при необходимости форум не то что на юникод, на КОИ-8 не настроишь без перелопачивания вручную десятков файлов.

 

Хотя как-то в инете наткнулся на "ip.board powered" китайский форум, в утф-8, естественно. Китайцев стало жалко...-это ж сколько им перековырять всего пришлось там. Только они наверно со своей дешевой рабочей силой и 1,5 миллиардным населением и могут позволить себе такую роскошь "IPB with UTF-8"...

 

Может у разработчиков спросить: когда у форума появится полноценная поддержка UTF-8?

Ссылка на комментарий
Поделиться на других сайтах

Как перекодировать базу в Sypex Dumper...???

А то когда на форум захожу не показывает название категории,подфорумов,русских ников вроде,и тем просто пишет "------" вот так...Помогите избавиться от этого)

Ссылка на комментарий
Поделиться на других сайтах

Базу перекодировать в скрипт? Что сделать то надо? :D

 

1. Почитайте на этом форуме тему про дампер.

2. http://sypex.net/encoding/

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

To MihaDV:

если интересно, вот небольшой патчик для корректной работы с utf8.

Форум 2.3.1, оригинальный (НЕ руссифицированный).

 

# diff sources/ipsclass.php.orig sources/ipsclass.php

435c435

< $this->vars['gb_char_set'] = $this->vars['gb_char_set'] ? $this->vars['gb_char_set'] : 'iso-8859-1';

---

> $this->vars['gb_char_set'] = $this->vars['gb_char_set'] ? $this->vars['gb_char_set'] : 'UTF-8';

787c787

< #$this->vars['gb_char_set'] = 'UTF-8';

---

> $this->vars['gb_char_set'] = 'UTF-8';

 

 

# diff sources/classes/class_email.php.orig sources/classes/class_email.php

67c67,68

< var $char_set = 'iso-8859-1';

---

> // var $char_set = 'iso-8859-1';

> var $char_set = 'utf-8';

321a323

>

350c352,354

< $value = '=?' . $this->char_set . '?Q?' . str_replace( " ", "=20", $value ) . '?=';

---

> // $value = '=?' . $this->char_set . '?Q?' . str_replace( " ", "=20", $value ) . '?=';

> mb_internal_encoding($this->char_set);

> $value = mb_encode_mimeheader($orig_value, $this->char_set, 'B');

 

 

И надо аккуратно собрать mysql и php с поддержкой многобайтных символов и дефолтом utf8.

 

 

Пример работающего в юникоде форума - forum.kaspersky.com

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Вот только, пожалуйста, сразу не говорите, что я сильно тупой, но я 2 дня упорно ищу ответ на вопрос и еще больше понимаю, что я нифига не понимаю:

 

Ну решил я апгрейднуть IPB 1.3 до 2.3.1 (уж больно она мне присмотрелась), сделал я бэкап, создан в cpanel БД новую и юзера(что б тот форум продолжал пока что работать), ну и залил новый двиг в другую дерикторию, залил БД и начал конверт, что то оно там конвертировало с уошбками, но кароче ошибки ТУТ НЕ Главное, и в итоге форумом я не увидел(это тоже не важно в даном случаи), но все русские юзеры и их данные были в КРЯКОЗЯБРАХ. Потом я решил еще залить паралельно 2.1.7, перезалил заново БД и начал конвертить до 2.1.7, все прошло без единой ошибки, но все форумы, темы и русские юзеры были в КРЯКОЗЯБРАХ, доконвертил я до 2.3.1 и там тоже все прекрасно работало но все русские данные которые вытаскиваются из БД в КРЯКОЗЯБРАХ.

Что я дальше мутил с БД смысла рассказывать нет - всерано никакого резульата нет, по этому жду Ваших подсказок.

 

Даные БД.

character_set_client latin1

character_set_connection latin1

character_set_database latin1

character_set_results latin1

character_set_server latin1

character_set_system utf8

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
Вот только, пожалуйста, сразу не говорите, что я сильно тупой, но я 2 дня упорно ищу ответ на вопрос и еще больше понимаю, что я нифига не понимаю:

 

Ну решил я апгрейднуть IPB 1.3 до 2.3.1 (уж больно она мне присмотрелась), сделал я бэкап, создан в cpanel БД новую и юзера(что б тот форум продолжал пока что работать), ну и залил новый двиг в другую дерикторию, залил БД и начал конверт, что то оно там конвертировало с уошбками, но кароче ошибки ТУТ НЕ Главное, и в итоге форумом я не увидел(это тоже не важно в даном случаи), но все русские юзеры и их данные были в КРЯКОЗЯБРАХ. Потом я решил еще залить паралельно 2.1.7, перезалил заново БД и начал конвертить до 2.1.7, все прошло без единой ошибки, но все форумы, темы и русские юзеры были в КРЯКОЗЯБРАХ, доконвертил я до 2.3.1 и там тоже все прекрасно работало но все русские данные которые вытаскиваются из БД в КРЯКОЗЯБРАХ.

Что я дальше мутил с БД смысла рассказывать нет - всерано никакого резульата нет, по этому жду Ваших подсказок.

 

 

Для начала надо понять, в какой кодировке у вас хранятся данные в старой базе. Совсем необязательно, что она совпадает с тем, что показывает show variables; Надо пробовать и смотреть глазками.

 

Затем надо сделать дамп старой базы. При этом указать ключик mysqldump-у с правильной кодировкой (man mysqldump, на память не скажу, еще там надо указать ключик, чтобы в дамп включались create table). Если дефолтная кодировка новой базы отличается, надо во всем дампе поправить старую кодровку на новую. Проще всего каким-нибудь потоковым редактором.

 

Новую субд лучше настроить так, чтобы дефолтная кодировка (переменные character_set_connection, character_set_database, character_set_results, character_set_server, character_set_system + соответствующие таблицы сортировки) была та, которую хочется.

 

После этого можно заливать данные. Потом каким-нибудь клиентом посмотреть, как построились таблицы. В идеале, в таблицах никаких упоминаний о кодировке быть не должно.

 

 

Старый движок форума должен корректно работать с этой новой базой. А вот потом уже можно заниматься обновлением движка.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
а проблему с утф8 на ipb2.2.2 кто-нибудь пробовал решать? интересует, собственно, какой-нибудь патч, который позволит нормально отображать буквы типа "ш" и "И"
Ссылка на комментарий
Поделиться на других сайтах

У меня проблма, когда я пытаюсь зайти Админка-Управление ограничениями АЦ-"Выбираю чела и жму Управление ограничениями доступа" То на этой перемещаемой страничке появляютс якакието иероглифы. Причем, на моем компе под Денвер-2 все работает норм. Как поминять?

Присоединяюсь к вопросу! IPB 2.2.2

Кодироффку вроде везде поменял

создал .htaccess с AddDefaultCharset windows-1251 - пока ничего не помогло

прочитал всю тему (бошка чуть не опухла) - по моему про этот случай ничего не сказано.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
Подскажите пожалуйста. Установили систему репутации (Simple System Reputation). В графе "Объяснение" русские буквы заменяются на знаки вопроса. Как исправить в этом случае кодиоровку? :D
Ссылка на комментарий
Поделиться на других сайтах

Присоединяюсь к вопросу! IPB 2.2.2

Кодироффку вроде везде поменял

создал .htaccess с AddDefaultCharset windows-1251 - пока ничего не помогло

прочитал всю тему (бошка чуть не опухла) - по моему про этот случай ничего не сказано.

 

init.php

 

define( 'IPB_ACP_AJAX_UTF_CONVERT', 1 );

 

на

 

define( 'IPB_ACP_AJAX_UTF_CONVERT', 0 );

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
Подскажите пожалуйста. Установили систему репутации (Simple System Reputation). В графе "Объяснение" русские буквы заменяются на знаки вопроса. Как исправить в этом случае кодиоровку? ;)

Ну помогите плиз!! :):D

Ссылка на комментарий
Поделиться на других сайтах

Почитать тему поддержки, там этот вопрос поднимался :D

 

Нужно залезть в БД phpmyadmin'ом, и в таблице репутации кодировки полей сменить на такие же, как в таблице posts.

Ссылка на комментарий
Поделиться на других сайтах

Почитать тему поддержки, там этот вопрос поднимался :D

 

Нужно залезть в БД phpmyadmin'ом и втаблице репутации кодировки полей сменить на такие же как в таблице posts.

Огромное спасибо, помогло. ;)

Ссылка на комментарий
Поделиться на других сайтах

Форум 2.2.2.

Уже как 2 года на форуме кодировка windows-1251

Когда пишу на гречском с SNS быстрого ответа он выдает ошибку... Т.е. показывает русскими буквами... а если с расширенного ответа, то все ок...

И еще заметил что когда выбираю быстрое редактировние при изменении поста, то тоже самое... Как исправить?:D

 

Внизу мода написано про это... Но весь форум стоит в w-1251 а вот греческий врядли будет работать с этой кодировкой ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
там тоже все прекрасно работало но все русские данные которые вытаскиваются из БД в КРЯКОЗЯБРАХ.

Пропиши кодировку(нужную) конекта к базе в class_db_mysql_client.php.

Ссылка на комментарий
Поделиться на других сайтах

Кто нибудь сможет мне помочь ?:D

 

Попробовал ставить utf-8 в настройках, тада весь форум косит ;) вопросики везьде...

Нужно тогда и базу данных конвертировать, смотрите в документации.

Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.