encoding() публичный Метод

public encoding ( $charset )
Пример #1
0
 /**
  * Convert * to UTF-16
  * @dataProvider toUTF16
  */
 public function test_convert_UTF16($input, $expected, $encoding)
 {
     $encoding = SimplePie_Misc::encoding($encoding);
     $this->assertEquals($expected, SimplePie_Misc::change_encoding($input, $encoding, 'UTF-16'));
 }
Пример #2
0
 /**
  * Change a string from one encoding to another
  *
  * @param string $data Raw data in $input encoding
  * @param string $input Encoding of $data
  * @param string $output Encoding you want
  * @return string|boolean False if we can't convert it
  */
 public static function change_encoding($data, $input, $output)
 {
     $input = SimplePie_Misc::encoding($input);
     $output = SimplePie_Misc::encoding($output);
     // We fail to fail on non US-ASCII bytes
     if ($input === 'US-ASCII') {
         static $non_ascii_octects = '';
         if (!$non_ascii_octects) {
             for ($i = 0x80; $i <= 0xff; $i++) {
                 $non_ascii_octects .= chr($i);
             }
         }
         $data = substr($data, 0, strcspn($data, $non_ascii_octects));
     }
     // This is first, as behaviour of this is completely predictable
     if ($input === 'windows-1252' && $output === 'UTF-8') {
         return SimplePie_Misc::windows_1252_to_utf8($data);
     } elseif (function_exists('mb_convert_encoding') && ($return = SimplePie_Misc::change_encoding_mbstring($data, $input, $output))) {
         return $return;
     } elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output))) {
         return $return;
     } else {
         return false;
     }
 }
Пример #3
0
 public static function change_encoding($data, $input, $output)
 {
     $input = SimplePie_Misc::encoding($input);
     $output = SimplePie_Misc::encoding($output);
     if ($input === 'US-ASCII') {
         static $non_ascii_octects = '';
         if (!$non_ascii_octects) {
             for ($i = 0x80; $i <= 0xff; $i++) {
                 $non_ascii_octects .= chr($i);
             }
         }
         $data = substr($data, 0, strcspn($data, $non_ascii_octects));
     }
     if ($input === 'windows-1252' && $output === 'UTF-8') {
         return SimplePie_Misc::windows_1252_to_utf8($data);
     } elseif (function_exists('mb_convert_encoding') && ($return = SimplePie_Misc::change_encoding_mbstring($data, $input, $output))) {
         return $return;
     } elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output))) {
         return $return;
     } else {
         return false;
     }
 }
Пример #4
0
 function change_encoding($data, $input, $output)
 {
     $input = SimplePie_Misc::encoding($input);
     $output = SimplePie_Misc::encoding($output);
     // We fail to fail on non US-ASCII bytes
     if ($input === 'US-ASCII') {
         static $non_ascii_octects = '';
         if (!$non_ascii_octects) {
             for ($i = 0x80; $i <= 0xff; $i++) {
                 $non_ascii_octects .= chr($i);
             }
         }
         $data = substr($data, 0, strcspn($data, $non_ascii_octects));
     }
     if (function_exists('iconv') && ($return = @iconv($input, $output, $data))) {
         return $return;
     } elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($data, $output, $input))) {
         return $return;
     } elseif ($input == 'windows-1252' && $output == 'UTF-8') {
         return SimplePie_Misc::windows_1252_to_utf8($data);
     } elseif ($input == 'UTF-8' && $output == 'windows-1252') {
         return utf8_decode($data);
     }
     return $data;
 }
	function change_encoding($data, $input, $output)
	{
		$input = SimplePie_Misc::encoding($input);
		$output = SimplePie_Misc::encoding($output);

		// We fail to fail on non US-ASCII bytes
		if ($input === 'US-ASCII')
		{
			static $non_ascii_octects = '';
			if (!$non_ascii_octects)
			{
				for ($i = 0x80; $i <= 0xFF; $i++)
				{
					$non_ascii_octects .= chr($i);
				}
			}
			$data = substr($data, 0, strcspn($data, $non_ascii_octects));
		}

		// This is first, as behaviour of this is completely predictable
		if ($input === 'Windows-1252' && $output === 'UTF-8')
		{
			return SimplePie_Misc::windows_1252_to_utf8($data);
		}
		// This is second, as behaviour of this varies only with PHP version
		elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($data, $output, $input)))
		{
			return $return;
		}
		// This is last, as behaviour of this varies with OS userland and PHP version
		elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data)))
		{
			return $return;
		}
		// If we can't do anything, just fail
		else
		{
			return false;
		}
	}
Пример #6
0
 function change_encoding($data, $input, $output)
 {
     $input = SimplePie_Misc::encoding($input);
     $output = SimplePie_Misc::encoding($output);
     if ($input != $output) {
         if (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], "{$output['encoding']}//TRANSLIT", $data)) {
             return iconv($input['encoding'], "{$output['encoding']}//TRANSLIT", $data);
         } else {
             if (function_exists('iconv') && $input['use_iconv'] && $output['use_iconv'] && iconv($input['encoding'], $output['encoding'], $data)) {
                 return iconv($input['encoding'], $output['encoding'], $data);
             } else {
                 if (function_exists('mb_convert_encoding') && $input['use_mbstring'] && $output['use_mbstring']) {
                     return mb_convert_encoding($data, $output['encoding'], $input['encoding']);
                 } else {
                     if ($input['encoding'] == 'ISO-8859-1' && $output['encoding'] == 'UTF-8') {
                         return utf8_encode($data);
                     } else {
                         if ($input['encoding'] == 'UTF-8' && $output['encoding'] == 'ISO-8859-1') {
                             return utf8_decode($data);
                         }
                     }
                 }
             }
         }
     }
     return $data;
 }
Пример #7
0
 function change_encoding($data, $input, $output)
 {
     $input = SimplePie_Misc::encoding($input);
     $output = SimplePie_Misc::encoding($output);
     if (function_exists('iconv') && ($return = @iconv($input, "{$output}//IGNORE", $data))) {
         return $return;
     } elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data))) {
         return $return;
     } elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($data, $output, $input))) {
         return $return;
     } elseif ($input == 'ISO-8859-1' && $output == 'UTF-8') {
         return utf8_encode($data);
     } elseif ($input == 'UTF-8' && $output == 'ISO-8859-1') {
         return utf8_decode($data);
     }
     return $data;
 }