From 28086252f15e2c124a2a00c2abc87a815d227fbe Mon Sep 17 00:00:00 2001 From: Maximilian Krambach Date: Mon, 27 Aug 2018 13:00:50 +0200 Subject: [PATCH] js: make non-payload data more encoding-tolerant -- * src/Helpers.js: As non-payload data might come in different encodings, a conversion has been introduced that worked in most cases. Data like the userid might come in different encodings, which we don't know of. For now, a try..catch returns the data as they are if the utf-8 decoding fails. Sometimes this yields the correct result, sometimes it may not work, but it won't stop the whole operation anymore. --- lang/js/src/Helpers.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lang/js/src/Helpers.js b/lang/js/src/Helpers.js index 9fa5775b..aa267f69 100644 --- a/lang/js/src/Helpers.js +++ b/lang/js/src/Helpers.js @@ -115,7 +115,14 @@ export function isLongId (value){ */ export function decode (property){ if (typeof property === 'string'){ - return decodeURIComponent(escape(property)); + try { + return decodeURIComponent(escape(property)); + } + catch (error){ + if (error instanceof URIError) { + return property; + } + } } else if (Array.isArray(property)){ let res = []; for (let arr=0; arr < property.length; arr++){