@Pestrich

Как правильно обработать NUL символ?

Удаленно хранятся данные в ASCII.

Пример данных (во втором столбце в 16ой системе для понимания):

1) ]�1�*..� 5D 83 31 91 2A 12 00 D4
2) ]�1�*.� 5D 83 31 91 2A 1C 00 B9
3) ]�1�*‑�� 5D 83 31 91 2A 1E FF F0
4) ]�1�*­.� 5D 83 31 91 2A 1F 0E F9

Я получаю эти данные, преобразую их в 16ые при помощи функции bin2hex() и сохраняю в таблице. В другом месте вытаскиваю из таблицы, преобразую обратно функцией hex2bin() и отправляю на обработку.

Пункты 1 и 2 содержат '00' (NUL символ), который никак не отображается в PHP, хотя и идет в счетчик символов var_dump(). В итоге записи, которые содержат этот символ не могут корректно обработаться. Насколько я смог понять, это связано с тем, что NUL символ не учитывается/теряется/удаляется/не может обработаться php (в редакторе даже не отображается <0x00>).

Пытался как-то выловить данный символ, чтобы попробовать произвести замену, но не смог найти способа поймать "ничего".

Совершенно зашел в тупик. Буду рад решению данной проблемы или идеям в какую сторону копать. Удаленные данные изменять нет возможности.
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 1
@anitspam
Данные можно сохранить в поле типа BLOB https://dev.mysql.com/doc/refman/8.0/en/blob.html

В итоге записи, которые содержат этот символ не могут корректно обработаться.

Надо смотреть функции обработки, как должно быть "корректно" и как получается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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