You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Apps Script的UrlFetchApp生成特殊字符实体

阻止UrlFetchApp返回内容出现特殊字符转义的解决方法

首先需要明确:UrlFetchApp本身不会主动对抓取到的内容做HTML实体转义,你看到的'这类转义字符,要么是目标网站返回的响应本身就包含转义后的实体,要么是你后续处理内容时触发了自动转义逻辑。

步骤1:确认原始响应内容

先通过指定编码获取原始响应,排除Apps Script自动转码导致的异常:

// 抓取时指定参数,避免异常拦截
const resp = UrlFetchApp.fetch("你的目标URL", {
  muteHttpExceptions: true
});
// 显式指定UTF-8编码解析内容,避免编码识别错误
const rawContent = resp.getContentText("UTF-8");
console.log(rawContent);

如果打印的原始内容中已经存在',说明是目标网站返回的内容本身做了转义,直接走下一步解码即可。

步骤2:HTML实体解码

写一个通用的HTML实体解码函数处理返回内容,就能把'这类转义字符还原成原始的撇号等符号:

function decodeHtmlEntities(str) {
  // 依次处理十进制实体、十六进制实体、常见命名实体
  return str.replace(/&#(\d+);/g, (_, dec) => String.fromCharCode(dec))
            .replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))
            .replace(/'/g, "'")
            .replace(/"/g, '"')
            .replace(/&lt;/g, '<')
            .replace(/&gt;/g, '>')
            .replace(/&amp;/g, '&');
}

// 调用示例
const normalContent = decodeHtmlEntities(rawContent);

处理后的normalContent就不会再有转义后的特殊字符了。


内容的提问来源于stack exchange,提问作者michaeldon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:36:00