首页 > 解决方案 > 使用 Google 表格将 HTML 编码为 HTML 特殊字符

问题描述

我正在尝试在单元格中对 HTML 块进行编码,以便 HTML 可以显示在包含在<pre>标签中的网页上。

所以

<div class="html"> 
    <html> 
    <head>
<title>Title</title>
</head> 
    <body>
    <p>Unrendred html</p>     </body> 
    </html> 
</div>

变成


<pre>
&lt;div class="html"&gt;
    &lt;html&gt;
    &lt;head&gt;&lt;title&gt;Title&lt;/title&gt;&lt;/head&gt;
    &lt;body&gt;
    &lt;p&gt;Unrendred html&lt;/p&gt;
    &lt;/body&gt;
    &lt;/html&gt;
&lt;/div&gt;
</pre>

现在我以为我已经通过找到=ENCODEURL公式破解了,但是输出的输出略有不同。

%26lt%3Bdiv%20class%3D%26quot%3Bhtml%26quot%3B%26gt%3B%20%26lt%3Bhtml%26gt%3B%20%26lt%3Bhead%26gt%3B%20%26lt%3Btitle%26gt%3BTitle%26lt%3B%2Ftitle%26gt%3B%20%26lt%3B%2Fhead%26gt%3B%20%26lt%3Bbody%26gt%3B%20%26lt%3Bp%26gt%3BUnrendred%20html%26lt%3B%2Fp%26gt%3B%20%26lt%3B%2Fbody%26gt%3B%20%26lt%3B%2Fhtml%26gt%3B%20%26lt%3B%2Fdiv%26gt%3B

CodePen显示了理想的输出以及如何在 HTML 中成功显示 HTML 代码。

我认为“编码”选项称为 HTML 特殊字符。如何在 Google 表格中获取此信息?也许通过公式或正则表达式

标签: javascripthtmlregexgoogle-sheets

解决方案


我正在通过 JSON 访问我的 Google 电子表格单元格,并在那里添加了 HTML。

谷歌电子表格: https ://docs.google.com/spreadsheets/d/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/edit#gid=0

谷歌电子表格 JSON: https ://spreadsheets.google.com/feeds/cells/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/1/public/full?alt=json

Codepen 演示:https ://codepen.io/aystarz52/pen/ormamN?editors=1011

$(function(){
  var sheetUrl = 'https://spreadsheets.google.com/feeds/cells/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/1/public/full?alt=json';
  $.getJSON(sheetUrl, function(data){
    var entry = data.feed.entry;
    var htmlCode = []; // the leftmost column of the Google Sheets
  for (var i = 0; i < entry.length; i += 1){
      // entry[i].content.$t retrieves the content of each cell
      htmlCode.push(entry[i].content.$t);
    }
    var uri= escape_html(htmlCode);
    var res = escape(uri);
    var appendContents = document.getElementById("demo").textContent = uri; 
  })
});

function escape_html(str) {

 if ((str===null) || (str===''))
       return false;
 else
   str = str.toString();

  var map = {
    '<': '&lt;',
    '>': '&gt;',
    '"': '&#x00022;',
    "'": '&#039;',
  ";": '&#x0003B;'
  };

  return str.replace(/[<>"']/g, function(m) { return map[m]; });
}

以下是编码字符:https ://dev.w3.org/html5/html-author/charref


推荐阅读