偶爾我會從我的網站用戶上傳照片時得到PHP錯誤,而當我隨後嘗試json_encode
它時,EXIF數據不是有效的UTF-8。我得到的具體錯誤是:試圖理解exif.encode_unicode
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
?
謝謝你的出色答案。使用上面的片段,我能夠確定問題是由於嘗試對「MakerNote」EXIF標記進行JSON編碼而導致的,因爲在大多數情況下,該進一步調查不適用,因爲內容是專有的二進制格式。 – Alex