Example #1
0
 protected function fixEncoding($in)
 {
     $iconv_encoding = new encoding_iconv();
     if ($iconv_encoding->supported($this->OriginalXMLEncoding)) {
         if ($in !== @iconv($this->OriginalXMLEncoding, $this->OriginalXMLEncoding, $in)) {
             /*	the encoding has been set wrong! */
             if ($in === @iconv('UTF-8', 'UTF-8', $in)) {
                 /*	thankfully it'll pass as UTF-8 */
                 return $in;
             } else {
                 /*	we better detect what it is in a trial and error kind of way */
                 $encoding = $iconv_encoding->detectEncoding($in);
                 if ($encoding) {
                     return @iconv($encoding, 'UTF-8', $in);
                 }
             }
         } else {
             /*	the encoding has been set correctly, let's encode in UTF-8 and return */
             return @iconv($this->OriginalXMLEncoding, 'UTF-8', $in);
         }
     }
     /*	we've still not returned must mean an unsuported type of encoding */
     if ($this->dieOnUnsupportedLang) {
         /*	settings specify we should die */
         die('gdo_encoding_xml : The machine you are working on does not support Iconv translation of this documents encoding [' . $this->OriginalXMLEncoding . ']. To force vo_encoding_xml to attempt to parse the file without conversion change XML_PHP_ICONV_UNSUPPORTED_LANG_DIE to false.');
     } else {
         /*	we'll attempt to continue anyways! */
         return $in;
     }
 }
Example #2
0
 /**
  * register all encodings supported by iconv
  *
  */
 public function registerEncodings()
 {
     self::$encodings = array();
     /**
      *  European Languages
      */
     self::$encodings['ASCII'] = false;
     self::$encodings['ISO-8859-1'] = false;
     self::$encodings['ISO-8859-2'] = false;
     self::$encodings['ISO-8859-3'] = false;
     self::$encodings['ISO-8859-4'] = false;
     self::$encodings['ISO-8859-5'] = false;
     self::$encodings['ISO-8859-7'] = false;
     self::$encodings['ISO-8859-9'] = false;
     self::$encodings['ISO-8859-10'] = false;
     self::$encodings['ISO-8859-13'] = false;
     self::$encodings['ISO-8859-14'] = false;
     self::$encodings['ISO-8859-15'] = false;
     self::$encodings['ISO-8859-16'] = false;
     self::$encodings['KOI8-R'] = false;
     self::$encodings['KOI8-U'] = false;
     self::$encodings['KOI8-RU'] = false;
     self::$encodings['CP1250'] = false;
     self::$encodings['CP1251'] = false;
     self::$encodings['CP1252'] = false;
     self::$encodings['CP1253'] = false;
     self::$encodings['CP1254'] = false;
     self::$encodings['CP1257'] = false;
     self::$encodings['CP850'] = false;
     self::$encodings['CP866'] = false;
     self::$encodings['CP1250'] = false;
     self::$encodings['CP1250'] = false;
     self::$encodings['CP1250'] = false;
     self::$encodings['MacRoman'] = false;
     self::$encodings['MacCentralEurope'] = false;
     self::$encodings['MacIceland'] = false;
     self::$encodings['MacCroatian'] = false;
     self::$encodings['MacRomania'] = false;
     self::$encodings['MacCyrillic'] = false;
     self::$encodings['MacUkraine'] = false;
     self::$encodings['MacGreek'] = false;
     self::$encodings['MacTurkish'] = false;
     self::$encodings['Macintosh'] = false;
     /**
      *  Semitic Languages
      */
     self::$encodings['ISO-8859-6'] = false;
     self::$encodings['ISO-8859-8'] = false;
     self::$encodings['CP1255'] = false;
     self::$encodings['CP1256'] = false;
     self::$encodings['CP862'] = false;
     self::$encodings['MacHebrew'] = false;
     self::$encodings['MacArabic'] = false;
     /**
      *	Japanese Languages
      */
     self::$encodings['EUC-JP'] = false;
     self::$encodings['SHIFT_JIS'] = false;
     self::$encodings['CP932'] = false;
     self::$encodings['ISO-2022-JP'] = false;
     self::$encodings['ISO-2022-JP-2'] = false;
     self::$encodings['ISO-2022-JP-1'] = false;
     /**
      *	Chinese Languages
      */
     self::$encodings['EUC-CN'] = false;
     self::$encodings['HZ'] = false;
     self::$encodings['GBK'] = false;
     self::$encodings['CP936'] = false;
     self::$encodings['GB18030'] = false;
     self::$encodings['EUC-TW'] = false;
     self::$encodings['BIG5'] = false;
     self::$encodings['CP950'] = false;
     self::$encodings['BIG5-HKSCS'] = false;
     self::$encodings['BIG5-HKSCS:2001'] = false;
     self::$encodings['BIG5-HKSCS:1999'] = false;
     self::$encodings['ISO-2022-CN'] = false;
     self::$encodings['ISO-2022-CN-EXT'] = false;
     /**
      *	Korean Languages
      */
     self::$encodings['EUC-KR'] = false;
     self::$encodings['CP949'] = false;
     self::$encodings['ISO-2022-KR'] = false;
     self::$encodings['JOHAB'] = false;
     /**
      *	Armenian
      */
     self::$encodings['ARMSCII-8'] = false;
     /**
      *	Georgian
      */
     self::$encodings['Georgian-Academy'] = false;
     self::$encodings['Georgian-PS'] = false;
     /**
      *	Tajik
      */
     self::$encodings['KOI8-T'] = false;
     /**
      *	Kazakh
      */
     self::$encodings['PT154'] = false;
     self::$encodings['RK1048'] = false;
     /**
      *	Thai
      */
     self::$encodings['ISO-8859-11'] = false;
     self::$encodings['TIS-620'] = false;
     self::$encodings['CP874'] = false;
     self::$encodings['MacThai'] = false;
     /**
      *	Laotian
      */
     self::$encodings['MuleLao-1'] = false;
     self::$encodings['CP1133'] = false;
     /**
      *	Vietnamese
      */
     self::$encodings['VISCII'] = false;
     self::$encodings['TCVN'] = false;
     self::$encodings['CP1258'] = false;
     /**
      *	Platform specifics
      */
     self::$encodings['HP-ROMAN8'] = false;
     self::$encodings['NEXTSTEP'] = false;
     /**
      *	Full Unicode
      */
     self::$encodings['UTF-8'] = false;
     self::$encodings['UCS-2'] = false;
     self::$encodings['UCS-2BE'] = false;
     self::$encodings['UCS-2LE'] = false;
     self::$encodings['UCS-4'] = false;
     self::$encodings['UCS-4BE'] = false;
     self::$encodings['UCS-4LE'] = false;
     self::$encodings['UTF-16'] = false;
     self::$encodings['UTF-16BE'] = false;
     self::$encodings['UTF-16LE'] = false;
     self::$encodings['UTF-32'] = false;
     self::$encodings['UTF-32BE'] = false;
     self::$encodings['UTF-32LE'] = false;
     self::$encodings['UTF-7'] = false;
     self::$encodings['C99'] = false;
     self::$encodings['JAVA'] = false;
     /**
      *	Full Unicode, in terms of uint16_t or uint32_t (with machine dependent endianness and alignment)
      */
     self::$encodings['UCS-2-INTERNAL'] = false;
     self::$encodings['UCS-4-INTERNAL'] = false;
     /**
      *	IMB AIX and Similar ISO-8859-1 rename support
      */
     self::$encodings['ISO8859-1'] = false;
     /**
      *	Save Supported Encodings
      */
     foreach (self::$encodings as $iconv_encoding => $supported) {
         if (@iconv("UTF-8", $iconv_encoding, " ")) {
             self::$encodings[$iconv_encoding] = true;
         }
     }
     if (!self::$encodings['ISO-8859-1'] && self::$encodings['ISO8859-1']) {
         self::$iso88591Rename = true;
     }
 }