Почему PHP взорвался неправильно?

Вот код PHP:

var_dump($value); 
 string(103) "0e0cU\0Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3" 
 var_dump(explode(',', $value)); 
  array (1) {
   [0] =>
   строка (103) "0e0cU \ 0Z, dddd.is.moar.awesome,A6A32C2074B787893DF506F6F466F5919516C44F3"
 } 

Почему строка не разделяется запятой?

Поскольку символ в строке, которую вы пытаетесь explode() , не является запятой – ну, а не запятой ASCII:, (точка десятичного кода 44 ) . Запятая в строке является символом Юникода «ОДИНОЧНАЯ МАТРИЦА ЦИФРОВОГО НИЗКАЯ-9» (десятичная кодовая точка 8218 ).

Попробуйте это в консоли JavaScript:

 > '‚' === ',' false 

После большого исследования реальной проблемой было то, что входная строка была в кодировке Windows-1252. Поэтому попытка заменить U + 201A не работала, пока я не преобразовал ее в unicode.