uglify字符串中无效的十六进制字符模式

时间:2018-10-22 09:33:33

标签: javascript uglifyjs gulp-uglify

这是我的代码:

var xxx = '\u{1F393}'

当我使用gulp-uglify时,收到以下错误消息:

  

“字符串中的无效十六进制字符模式”

1 个答案:

答案 0 :(得分:0)

很不幸,您的gulp-uglify似乎不支持unicode point escapes。对于此表情符号,您可以将其写为功能相同的代理对\ud83c\udf93

console.log('\u{1F393}');
console.log('\ud83c\udf93');

这是一个简单的脚本,可帮助您将表情符号转换成它们的替代对:

const str = '';
const str2 = '\u{1F393}';

function getEscaped(str) {
  var ret = '';
  for (var i=0; i<str.length; i++) {
    var code = str.charCodeAt(i).toString(16);

    ret += '\\u' + code;
  }
  
  return ret;
}

const result = getEscaped(str);
console.log(result);
console.log(eval(`"${result}"`));
console.log(getEscaped(str2));