Что нового

Dle форум help

  • Автор темы Автор темы Poligon_team
  • Дата начала Дата начала
P

Poligon_team

Гость
поставил сибе форум, DLE Forum v.2.3всё вроде норм нов от в темах когда создаёш тему всё норм, а когда отвечаеш второе, третие сообщение.. там вместо русского текста примерно такое: %u0440%u0430%u0441всё остальное пишетсяя норм!! думаю что-то с кодировкой... но что хз...
 
7.0< -system: при конвертации необходимо было добавить- >
 
Два варианта.1. Либо обновить DLE до актуальной версии.2. Либо произвести следующие действия:Во всех php файлах в папке /engine/forum/ajax найти:if &#40;!function_exists&#40;\&#39;convert_unicode\&#39;&#41;&#41;{function convert_unicode&#40;$t, $to = \&#39;windows-1251\&#39;&#41;{$to = strtolower&#40;$to&#41;;if &#40;$to == \&#39;utf-8\&#39;&#41; {return urldecode&#40;$t&#41;;} else {if&#40; function_exists&#40;\&#34;get_magic_quotes_gpc\&#34;&#41; &amp;&amp; get_magic_quotes_gpc&#40;&#41; &#41; $t = stripslashes&#40; $t &#41;;if &#40; function_exists&#40;\&#39;iconv\&#39;&#41; &#41; $t = iconv&#40;\&#34;UTF-8\&#34;, $to.\&#34;//IGNORE\&#34;, $t&#41;;else $t = \&#34;The library iconv is not supported by your server\&#34;;}return urldecode&#40;$t&#41;;}}Заменить на:function decode_to_utf8&#40;$int=0&#41;{$t = \&#39;\&#39;;if &#40; $int &#60; 0 &#41;{return chr&#40;0&#41;;}else if &#40; $int &#60;= 0x007f &#41;{$t .= chr&#40;$int&#41;;}else if &#40; $int &#60;= 0x07ff &#41;{$t .= chr&#40;0xc0 | &#40;$int &#62;&#62; 6&#41;&#41;;$t .= chr&#40;0x80 | &#40;$int &amp; 0x003f&#41;&#41;;}else if &#40; $int &#60;= 0xffff &#41;{$t .= chr&#40;0xe0 | &#40;$int &#62;&#62; 12&#41;&#41;;$t .= chr&#40;0x80 | &#40;&#40;$int &#62;&#62; 6&#41; &amp; 0x003f&#41;&#41;;$t .= chr&#40;0x80 | &#40;$int &amp; 0x003f&#41;&#41;;}else if &#40; $int &#60;= 0x10ffff &#41;{$t .= chr&#40;0xf0 | &#40;$int &#62;&#62; 18&#41;&#41;;$t .= chr&#40;0x80 | &#40;&#40;$int &#62;&#62; 12&#41; &amp; 0x3f&#41;&#41;;$t .= chr&#40;0x80 | &#40;&#40;$int &#62;&#62; 6&#41; &amp; 0x3f&#41;&#41;;$t .= chr&#40;0x80 | &#40;$int &amp; 0x3f&#41;&#41;;}else{ return chr&#40;0&#41;;}return $t;}function convert_unicode&#40;$t, $to = \&#39;windows-1251\&#39;&#41;{$to = strtolower&#40;$to&#41;;if &#40;$to == \&#39;utf-8\&#39;&#41; {$t = preg_replace&#40; \&#39;#%u&#40;&#91;0-9A-F&#93;{1,4}&#41;#ie\&#39;, \&#34;decode_to_utf8&#40;hexdec&#40;\&#39;\\1\&#39;&#41;&#41;\&#34;, utf8_encode&#40;$t&#41; &#41;;$t = urldecode &#40;$t&#41;;} else {$t = preg_replace&#40; \&#39;#%u&#40;&#91;0-9A-F&#93;{1,4}&#41;#ie\&#39;, \&#34;\&#39;&amp;#\&#39; . hexdec&#40;\&#39;\\1\&#39;&#41; . \&#39;;\&#39;\&#34;, $t &#41;;$t = urldecode &#40;$t&#41;;$t = @html_entity_decode&#40;$t, ENT_NOQUOTES, $to&#41;;}return $t;}Скорее всего не поможет, хотя кто знает... по этому только 1ый вариант...
 
зделал как написал BegleZZZ второй вариант, обновить DLE не могу так как в версиях выше отправка коментов не пашет без iconv а у меня на сервере он выключен! вобщем после изменений русский язык вообще игнорить стало!! тоесть пишеш символы и енглиш, всё гуд, а русский пишеш и как буть-то пробел поставил и запостил...
 
Верх