From 2c24e9eff6b0797ff44673136801dbfa5f5156aa Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 30 Jun 2020 14:28:37 +0300 Subject: [PATCH] Fall back to latin-1 encoding when failed with UTF-8 while parsing manifest --- platformio/package/manifest/parser.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index 86c98587..0b826479 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -61,8 +61,14 @@ class ManifestFileType(object): class ManifestParserFactory(object): @staticmethod def read_manifest_contents(path): - with io.open(path, encoding="utf-8") as fp: - return fp.read() + last_err = None + for encoding in ("utf-8", "latin-1"): + try: + with io.open(path, encoding=encoding) as fp: + return fp.read() + except UnicodeDecodeError as e: + last_err = e + raise last_err @classmethod def new_from_file(cls, path, remote_url=False):