json_encode()
wont work for me when I\'m using åäö. Why? And how can I get it to work?
The php
:
echo json_encode($arr);
Old question, but figured I'd put this here in case someone needs to log data using json_encode but keep the data untouched, intact for inspection later.
You can encode the data raw using base64_encode
, then it will work with json_encode
. Later after running json_decode
, you can decode the string with base64_decode
, you'll get the original data unmodified.
This function will cast the correct data type for the JSON output and utf8_encode the strings.
/* Change data-type from string to integar or float if required.
* If string detected then utf8_encode() it. */
function cast_data_types ($value) {
if (is_array($value)) {
$value = array_map('cast_data_types',$value);
return $value;
}
if (is_numeric($value)) {
if(strpos('.', $value)===false) return (float)$value;
return (int) $value;
}
return utf8_encode((string)$value);
}
json_encode (cast_data_types($data));