В этом примере (предполагая, что вам просто нужно избавиться от нулей) По вашему кодирующим примере выше, фактическая 0
символ будет отображаться в виде двух последовательных нулей, поэтому сначала закодировать его в какой-то специальной строки, затем декодирует после удаления всех ненужные нули.
$kw = str_replace('00', ';;;zero;;;', $kw);
$kw = str_replace('0', '', $kw);
$kw = str_replace(';;;zero;;;', '0', $kw);
Это должно сработать. Тем не менее, это своего рода быстрое и грязное решение вашей проблемы.
Тот факт, что ваша строка поступает в вашу программу с каждым символом, заполненным нулями, является нечетным, и исправление этой проблемы в ее источнике было бы идеальным решением.
Это выглядит действительно странно, не могли бы вы показать нам hexdump этой строки? (См: bin2hex) – tkausl
bin2hex показывает: 00630061007200720065006c006100670065002000730061006c006c00650020006400650020006200610069006e00 – Kevin
Это выглядит как UTF-16, но тогда это будет строка «CARRELAGE Саль де Бэйн» и я не понимаю, почему это заканчивается «00», так вот только «половинку "символа. – tkausl