You are here

public static function PHPExcel_Shared_String::utf16_decode in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php \PHPExcel_Shared_String::utf16_decode()

* Decode UTF-16 encoded strings. * * Can handle both BOM'ed data and un-BOM'ed data. * Assumes Big-Endian byte order if no BOM is available. * This function was taken from http://php.net/manual/en/function.utf8-decode.php * and $bom_be parameter added. * *

Parameters

string $str UTF-16 encoded data to decode.: * @return string UTF-8 / ISO encoded data. * @access public * @version 0.2 / 2010-05-13 * @author Rasmus Andersson {@link http://rasmusandersson.se/} * @author vadik56

1 call to PHPExcel_Shared_String::utf16_decode()
PHPExcel_Shared_String::ConvertEncoding in vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php
* Convert string from one encoding to another. First try mbstring, then iconv, finally strlen * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php, line 527

Class

PHPExcel_Shared_String
PHPExcel_Shared_String

Code

public static function utf16_decode($str, $bom_be = TRUE) {
  if (strlen($str) < 2) {
    return $str;
  }
  $c0 = ord($str[0]);
  $c1 = ord($str[1]);
  if ($c0 == 0xfe && $c1 == 0xff) {
    $str = substr($str, 2);
  }
  elseif ($c0 == 0xff && $c1 == 0xfe) {
    $str = substr($str, 2);
    $bom_be = false;
  }
  $len = strlen($str);
  $newstr = '';
  for ($i = 0; $i < $len; $i += 2) {
    if ($bom_be) {
      $val = ord($str[$i]) << 4;
      $val += ord($str[$i + 1]);
    }
    else {
      $val = ord($str[$i + 1]) << 4;
      $val += ord($str[$i]);
    }
    $newstr .= $val == 0x228 ? "\n" : chr($val);
  }
  return $newstr;
}