From 3bdee3aabed551200f9a2b3629ed0c7f85eab68a Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 16 Apr 2012 10:55:00 +0200 Subject: [PATCH] Detect and report UTF8 encoding errors in json files --- src/Composer/Json/JsonFile.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Composer/Json/JsonFile.php b/src/Composer/Json/JsonFile.php index 63c21bda3..c4d9ef59c 100644 --- a/src/Composer/Json/JsonFile.php +++ b/src/Composer/Json/JsonFile.php @@ -271,7 +271,7 @@ class JsonFile public static function parseJson($json) { $data = json_decode($json, true); - if (null === $data && 'null' !== $json) { + if (null === $data && json_last_error()) { self::validateSyntax($json); } @@ -289,8 +289,11 @@ class JsonFile { $parser = new JsonParser(); $result = $parser->lint($json); - if (null === $result) { + if (defined('JSON_ERROR_UTF8') && json_last_error() === JSON_ERROR_UTF8) { + throw new \UnexpectedValueException('JSON file is not UTF-8 encoded'); + } + return true; }