Вот код 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.