/**
  * @param string $str
  * @param string $fromCharset
  * @param string $toCharset
  * @param bool $changeCharset
  * @return string
  */
 function EncodeHeaderString($str, $fromCharset, $toCharset, $changeCharset = true)
 {
     $out = '';
     if ($changeCharset) {
         $str = ConvertUtils::ConvertEncoding($str, $fromCharset, $toCharset);
     }
     $array = ConvertUtils::EncodeString($str, $toCharset);
     for ($i = 0, $c = count($array); $i < $c; $i++) {
         if ($i > 0) {
             if (strlen($array[$i]) > 0) {
                 $out .= $array[$i][0] == ' ' ? CRLF . $array[$i] : CRLF . "\t" . $array[$i];
             }
         } else {
             $out .= $array[$i];
         }
     }
     return trim($out);
 }
 /**
  * @param string $str
  * @param string $fromCharset
  * @param string $toCharset
  * @param bool $changeCharset
  * @return string
  */
 function EncodeHeaderString($str, $fromCharset, $toCharset, $changeCharset = true)
 {
     $out = '';
     if ($changeCharset) {
         $str = ConvertUtils::ConvertEncoding($str, $fromCharset, $toCharset);
     }
     $array = ConvertUtils::EncodeString($str, $toCharset);
     for ($i = 0, $c = count($array); $i < $c; $i++) {
         $out .= $c > 1 ? $array[$i] . CRLF . ' ' : $array[$i];
     }
     return trim($out);
 }