首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到一个Unicode字符串的解码版本?

问得到一个Unicode字符串的解码版本?
EN

Stack Overflow用户
提问于 2015-09-21 09:32:16
回答 1查看 25关注 0票数 0

我将一个变量写入HTML元素,如下所示:

代码语言:javascript
复制
document.getElementById('myDiv').innerHTML = '<xsl:value-of select="@value"/>'; 

然而,它的写法如下:

代码语言:javascript
复制
TECHNO A.&#x15E;.

这应该是:

代码语言:javascript
复制
TECHNO A.Ş.

如何使用Javascript手动获得Unicode字符串的解码版本?

PS:我意识到这个问题发生在Chrome上,但不在Internet上。

EN

回答 1

Stack Overflow用户

发布于 2015-09-21 10:02:15

&#和;are html解析器转义十六进制字符。因此,您需要做的是去掉它们,并将剩余的'15E‘值传递到下面(例如):

代码语言:javascript
复制
<!DOCTYPE html>
<div id="myId">
yo oyyoyoyooy &amp;amp;amp;#xAA;suuupspuspupsu
  ssdosudoisduoisudoiud
  &amp;amp;#xFE;
</div>


<script>
document.addEventListener("DOMContentLoaded", function(){
  var nodeIterator = document.createNodeIterator(
  // Node to use as root
    document.getElementById('myId'),

    // Only consider nodes that are text nodes (nodeType 3)
    NodeFilter.SHOW_TEXT,

    // Object containing the function to use for the acceptNode method
    // of the NodeFilter
      { acceptNode: function(node) {
        // Logic to determine whether to accept, reject or skip node
        // In this case, only accept nodes that have content
        // other than whitespace
        if ( /&.*?#x[^;]+;/ig.test(node.data) ) {
          return NodeFilter.FILTER_ACCEPT;
        }
      }
    },
    false
  );

  // Show the content of every non-empty text node that is a child of root
  var node;

  while ((node = nodeIterator.nextNode())) {
    node.nodeValue = node.nodeValue.replace(/&.*?#x([^;]+);/ig, function(match, p1) {
      return String.fromCharCode(parseInt(p1, 16))
    });
  }
});
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32691768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档