From 99873504e4bc568281d5a978a6521edf3caf3da4 Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Thu, 14 Oct 2021 13:16:16 +0000 Subject: Support IDNA URLs embedding --- view/js/main.js | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) (limited to 'view/js') diff --git a/view/js/main.js b/view/js/main.js index 476e78056..d3f4eff9a 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -1457,35 +1457,21 @@ function preview_post() { } function bin2hex(s) { - // Converts the binary representation of data to hex - // - // version: 812.316 - // discuss at: http://phpjs.org/functions/bin2hex - // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + bugfixed by: Onno Marsman - // + bugfixed by: Linuxworld - // * example 1: bin2hex('Kev'); - // * returns 1: '4b6576' - // * example 2: bin2hex(String.fromCharCode(0x00)); - // * returns 2: '00' - var v,i, f = 0, a = []; - s += ''; - f = s.length; - - for (i = 0; i byte.toString(16).padStart(2, "0") + ).join(""); } function hex2bin(hex) { - var bytes = [], str; - - for(var i=0; i< hex.length-1; i+=2) - bytes.push(parseInt(hex.substr(i, 2), 16)); - - return String.fromCharCode.apply(String, bytes); + // UTF-8 decoding from hex is supported + var bytes = new Uint8Array(hex.length / 2); + for (i = 0; i !== bytes.length; i++) { + bytes[i] = parseInt(hex.substr(i * 2, 2), 16); + } + return new TextDecoder().decode(bytes); } function groupChangeMember(gid, cid, sec_token) { -- cgit v1.2.3