Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Andrey Slusar                        2:467/126      16 Jul 2004  13:21:48
 To : Alex Povolotsky
 Subject : Re: squirrelmail и русский
 -------------------------------------------------------------------------------- 
 
 Thu, 15 Jul 2004 23:01:13 +0300, Alex Povolotsky wrote to All:
 
  AP> А кто-нибудь побеждал squirrelmail настолько, чтобы он не дурил при работе
  AP> с русскими письмами? Особенно интересует корректная генерация ответов...
 
   Вот что у меня сделано:
 --8<---------------cut here---------------start------------->8---
 diff -urN functions/i18n.php functions/i18n.php
 -+- functions/i18n.php 2004-05-19 19:57:23.000000000 +0400
 +++ functions/i18n.php 2004-06-24 17:27:00.000000000 +0400
 @@ -19,7 +19,7 @@
  
  /* Decodes a string to the internal encoding from the given charset */
  function charset_decode ($charset, $string) {
 -    global $languages, $squirrelmail_language;
 +    global $languages, $squirrelmail_language, $default_charset;
  
      if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
          function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
 @@ -37,7 +37,7 @@
      /* controls cpu and memory intensive decoding cycles */
      $agresive_decoding = false;
  
 -    if (ereg('iso-8859-([[:digit:]]+)', $charset, $res)) {
 +    /* if (ereg('iso-8859-([[:digit:]]+)', $charset, $res)) {
          if ($res[1] == '1') {
        include_once(SM_PATH . 'functions/decode/iso8859-1.php');
              $ret = charset_decode_iso8859_1 ($string);
 @@ -165,7 +165,16 @@
    $ret = charset_decode_utf8 ($string);
      } else {
           $ret = $string;
 -    }
 +    } */
 +  /* $ret = iconv($charset, $default_charset, $string); */
 +  if (($charset == 'koi8-r') || ($charset == 'utf-8') || ($charset ==
 'windows-1251') || ($charset == 'iso-8859-5') || (ereg('866',$charset))) { 
 +     $ret = mb_convert_encoding($string, $default_charset, $charset);
 +  } else {
 +     $ret = $string;  
 +  }
 +  if (!$ret) {
 +     $ret = $string;
 +  }
      return( $ret );
  }
  
 @@ -472,8 +481,8 @@
  $languages['ro']['ALIAS']      = 'ro_RO';
  
  $languages['ru_RU']['NAME']    = 'Russian';
 -$languages['ru_RU']['CHARSET'] = 'utf-8';
 -$languages['ru_RU']['LOCALE']  = 'ru_RU.UTF-8';
 +$languages['ru_RU']['CHARSET'] = 'koi8-r';
 +$languages['ru_RU']['LOCALE']  = 'ru_RU.KOI8-R';
  $languages['ru']['ALIAS']      = 'ru_RU';
  
  $languages['sk_SK']['NAME']     = 'Slovak';
 diff -urN src/compose.php src/compose.php
 -+- src/compose.php   2004-05-31 21:32:34.000000000 +0400
 +++ src/compose.php   2004-06-24 13:45:17.000000000 +0400
 @@ -629,6 +629,15 @@
                      $bodypart =
 $languages[$squirrelmail_language]['XTRA_CODE']('decode', $bodypart);
                  }
              }
 +            set_my_charset();
 +      global $default_charset;
 +      $actual = $body_part_entity->header->parameters['charset'];
 +      if ($actual && $actual != $default_charset){
 +         $bodypart = charset_decode($actual,$bodypart);
 +      }
 +      $entity_trans = array_flip(get_html_translation_table(HTML_ENTITIES));
 +      $char_trans = array_flip(get_html_translation_table(HTML_SPECIALCHARS));
 +      $bodypart = strtr(strtr($bodypart, $entity_trans), $char_trans);
              $body .= $bodypart;
          }
          if ($default_use_priority) {
 --8<---------------cut here---------------end--------------->8---
   Только не поняимаю, почему не срабатывает:
 $ret = mb_convert_encoding($string, $default_charset, $charset);
 в i18n.php - пишет, что не определена. Вроде должно. Может кто-то,
 разбирающийся в php, поправит.
 -- 
                                                   Всего хорошего.
                                                             Андрей.
 ... В комнату вошел негp в ботинках телесного цвета...
 
 --- Gnus/5.110003 (No Gnus v0.3) XEmacs/21.4 (Security Through Obscurity)
  * Origin: Unix is user friendly. However, it isn't idiot friendly. (2:467/126)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: squirrelmail и русский   Andrey Slusar   16 Jul 2004 13:21:48 
Архивное /ru.unix.bsd/27493d389c50.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional