有时我会从我网站的用户上传照片时收到 PHP 错误,并且当我随后尝试使用时,EXIF 数据不是有效的 UTF-8 json_encode
。我得到的具体错误是:
E_WARNING: json_encode(): Invalid UTF-8 sequence in argument
这是由下面代码的最后一行生成的。
ini_set('exif.encode_unicode', 'UTF-8');
$exif_data = exif_read_data($uploader_target_dir . $_POST['uploader_' . $i . '_tmpname']);
$when_photo_taken = isset($exif_data['DateTime']) ? (int)strtotime($exif_data['DateTime']) : 0;
$exif_data = (json_encode($exif_data));
如您所见,我将exif.encode_unicode
选项设置为UTF-8
,尽管我不是 100% 确定这是做什么的(手册中的句子“exif.encode_unicode 定义字符集 UNICODE 用户注释被处理”似乎很模棱两可/令人困惑我),但无论哪种方式,它都没有解决问题。
有谁知道这个配置选项到底是做什么的?或者是什么导致我的E_WARNING
?