From 7a73635214d12639148d8f52b0833f8a62f40c65 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 22 Feb 2016 18:35:14 +0100 Subject: [PATCH] Fix unicode-awareness of Base64 encoding implementation in javascript --- program/js/common.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/program/js/common.js b/program/js/common.js index 7a0c3036f..1dc1785f4 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -744,16 +744,16 @@ var Base64 = (function () { * @param {String} input The string to encode in base64. */ encode: function (input) { + // encode UTF8 as btoa() may fail on some characters + input = utf8_encode(input); + if (typeof(window.btoa) === 'function') { - // it may fail on unicode characters, the fallback can handle them try { return btoa(input); } catch (e) {}; } - input = utf8_encode(input); - var chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0, output = '', len = input.length; while (i < len) { @@ -785,7 +785,6 @@ var Base64 = (function () { */ decode: function (input) { if (typeof(window.atob) === 'function') { - // it may fail on unicode characters, the fallback can handle them try { return utf8_decode(atob(input)); }