UNPKG

@qelos/assets

Version:

manage assets like images and static files on remote servers

61 lines (59 loc) 1.54 kB
"use strict"; /* eslint-disable no-bitwise */ // http://kevin.vanzonneveld.net // + original by: Webtoolkit.info (http://www.webtoolkit.info/) // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: sowberry // + tweaked by: Jack // + bugfixed by: Onno Marsman // + improved by: Yves Sucaet // + bugfixed by: Onno Marsman // + bugfixed by: Ulrich // + bugfixed by: Rafal Kukawski // + improved by: kirilloid // * example 1: utf8_encode('Kevin van Zonneveld') // * returns 1: 'Kevin van Zonneveld' /** * Encode the given string * @private * @param {string} argString the string to encode * @return {string} */ module.exports = function utf8_encode(argString) { var c1 = void 0, enc = void 0, n = void 0; if (argString == null) { return ""; } var string = argString + ""; var utftext = ""; var start = 0; var end = 0; var stringl = string.length; n = 0; while (n < stringl) { c1 = string.charCodeAt(n); enc = null; if (c1 < 128) { end++; } else if (c1 > 127 && c1 < 2048) { enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128); } else { enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128); } if (enc !== null) { if (end > start) { utftext += string.slice(start, end); } utftext += enc; start = n + 1; end = start; } n++; } if (end > start) { utftext += string.slice(start, stringl); } return utftext; };