Aleksander Machniak
2015-08-13 b44a6554bba27b2df8dc1add1a9bae41253641a8
Fix base64.encode/decode for unicode characters - use fallback if btoa/atob functions fail
1 files modified
18 ■■■■ changed files
program/js/common.js 18 ●●●● patch | view | raw | blame | history
program/js/common.js
@@ -695,8 +695,13 @@
     * @param {String} input The string to encode in base64.
     */
    encode: function (input) {
      if (typeof(window.btoa) === 'function')
        return btoa(input);
      if (typeof(window.btoa) === 'function') {
        // it may fail on unicode characters, the fallback can handle them
        try {
          return btoa(input);
        }
        catch (e) {};
      }
      var chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0, output = '', len = input.length;
@@ -728,8 +733,13 @@
     * @param {String} input The string to decode.
     */
    decode: function (input) {
      if (typeof(window.atob) === 'function')
         return atob(input);
      if (typeof(window.atob) === 'function') {
        // it may fail on unicode characters, the fallback can handle them
        try {
          return atob(input);
        }
        catch (e) {};
      }
      var chr1, chr2, chr3, enc1, enc2, enc3, enc4, len, i = 0, output = '';