json_encode
хочет только utf-8
. В зависимости от набора символов вы можете использовать iconv
или utf8_encode
перед , вызывая json_encode
для вашей переменной. Возможно с array_walk_recursive
.
По запросу, незаконченный способ изменить массив, с предположениями, что (1) он не содержит объектов, и (2) ключи массива находятся в ascii / нижних границах, поэтому оставить как есть:
$current_charset = 'ISO-8859-15';//or what it is now
array_walk_recursive($array,function(&$value) use ($current_charset){
$value = iconv('UTF-8//TRANSLIT',$current_charset,$value);
});