} elseif(($ord_var_c & 0xFC) == 0xF8) {
// characters U-00200000 - U-03FFFFFF, mask 111110XX, see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c, ord($var{$c+1}), ord($var{$c+2}), ord($var{$c+3}), ord($var{$c+4})); $c+=4;
$ascii .= sprintf('u%04s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
} elseif(($ord_var_c & 0xFE) == 0xFC) {
// characters U-04000000 - U-7FFFFFFF, mask 1111110X, see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c, ord($var{$c+1}), ord($var{$c+2}), ord($var{$c+3}), ord($var{$c+4}), ord($var{$c+5})); $c+=5;
$ascii .= sprintf('u%04s', bin2hex(mb_convert_encoding($char, 'UTF-16', 'UTF-8')));
}
}
return sprintf('"%s"', $ascii);
case 'array':
if(is_array($var) && (array_keys($var) !== range(0, sizeof($var) - 1)))
return sprintf('{%s}', join(',', array_map(array($this, 'name_value'), array_keys($var), array_values($var))));
return sprintf('[%s]', join(',', array_map(array($this, 'encode'), $var)));







