Разница между getContext (), getApplicationContext (), getBaseContext () и & ldquo; this & rdquo;

Причина, по которой unserialize() терпит неудачу:

$ser = 'a:2:{i:0;s:5:"héllö";i:1;s:5:"wörld";}';

Это потому, что длина для héllö и wörld неверна, поскольку PHP неправильно обрабатывает многобайтные строки изначально:

echo strlen('héllö'); // 7
echo strlen('wörld'); // 6

Однако, если вы попытаетесь unserialize() получить следующую правильную строку:

$ser = 'a:2:{i:0;s:7:"héllö";i:1;s:6:"wörld";}';

echo '<pre>';
print_r(unserialize($ser));
echo '</pre>';

Это работает:

Array
(
    [0] => héllö
    [1] => wörld
)

Если вы используете PHP serialize() он должен правильно вычислять длины многобайтовых индексов строк.

С другой стороны, если вы хотите работать с сериализованными данными на нескольких (программируемых) языках, вы должны забыть об этом и перейти к чему-то как JSON, который более стандартизирован.

516
задан N J 25 June 2015 в 12:22
поделиться

1 ответ

Context:

  • абстрактный класс, реализация которого обеспечивается системой Android.
  • Это предоставляет доступ к специализированным ресурсам и классам, а также-призывает к операциям прикладного уровня, таким как запускающиеся операции, широковещательно передавая и получая намерения, и т.д.
0
ответ дан 22 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: