首页 > 解决方案 > Node 上的 Javascript textContent 不返回 unicode 字符

问题描述

Node 上的 Javascript textContent 不返回 unicode 字符

如果我有一个像这样的带有 unicode 字符的节点,我怎样才能使用 textContent 或其他方法取回它?

console.log(
  document.createTextNode('a\u200eb').textContent
)  

标签: javascripthtmldom

解决方案


...您确定是这样'\u200',而不是'\u0200'因为后者在您的示例中'a\u0200eb'使用完美输出"aȀeb"...

console.log(
  'a\u200eb',
  ' versus ',
  'a\u0200eb'
);

console.log(
  document.createTextNode('a\u200eb').textContent,
  ' versus ',
  document.createTextNode('a\u0200eb').textContent
);


console.log(
  escape('a\u0200eb_%yz')
);
console.log(
  escape('a\u0200eb_%yz')
    .replace((/%u/g), '\\u')
    .replace((/%/g), '\\u00')
);

console.log(
  escape(
    document.createTextNode('a\u0200eb_%yz').textContent
  )
);
console.log(
  escape(
    document.createTextNode('a\u0200eb_%yz').textContent

  ).replace((/%u/g), '\\u').replace((/%/g), '\\u00')
);

console.log(
  "('a\\u0200eb_\\u0025yz' === 'aȀeb_%yz') ? ",
  ('a\u0200eb_\u0025yz' === 'aȀeb_%yz')
);
console.log(
  "('a\\u0200eb_\\u0025yz' === 'a\\u0200eb_%yz') ? ",
  ('a\u0200eb_\u0025yz' === 'a\u0200eb_%yz')
);
.as-console-wrapper { min-height: 100%!important; top: 0; }


推荐阅读