html转换工具怎么用 html在线转换格式教程【解惑】

5次阅读

html转义字符还原最稳用domparser:new domparser().parsefromstring(htmlstr,”text/html”).body.textcontent,可全量解码命名、十进制、十六进制实体。

html转换工具怎么用 html在线转换格式教程【解惑】

html转义字符怎么还原成正常文本

直接用 DOMParser 最稳,别信那些正则替换的“一行解法”——< 会被误判成标签,' 这种十六进制实体也容易漏掉。

常见错误现象:innerHTML = "<div>hello</div>" 直接赋值,结果页面真显示出了 <div> 字符串,而不是渲染成 div。

  • new DOMParser().parseFromString(htmlStr, "text/html") 解析后取 body.textContent,能覆盖所有标准 HTML 实体(包括十进制、十六进制、命名实体)
  • 如果只是简单场景且确定输入可控,可用 textarea 中转:const t = document.createElement("textarea"); t.innerHTML = str; return t.value;,但注意它不支持 😂 这类 emoji 实体
  • Node.js 环境别硬套浏览器 API,改用 he.decode()(需装 he 包),它比原生 DOMParser 更轻、更全

在线工具把 HTML 转成 Markdown 总丢格式怎么办

核心问题不是工具不行,是 HTML 源本身没语义化——<div class="title"> 和 <code><h2></h2> 对转换器来说完全是两回事。

使用场景:从富文本编辑器导出 HTML 后想转 Markdown 发文档或写博客,结果标题变段落、列表全扁平、代码块消失。

立即学习前端免费学习笔记(深入)”;

  • 先清理 HTML:用 sanitize-htmlDOMPurify 剥离无意义 class/id,把 <div> 套 <code><strong></strong> 的结构手动改成语义标签
  • 选对工具:浏览器端推荐 turndown(支持自定义规则),命令行用 html2md 时加 --gfm 开启 github 兼容模式,否则表格、任务列表会失效
  • 特别注意 <pre class="brush:php;toolbar:false;">&lt;code&gt;&lt;/code&gt; 嵌套层级:有些工具只认 &lt;code&gt;&lt;code&gt;&lt;/code&gt; 在 &lt;code&gt;&lt;pre class=&quot;brush:php;toolbar:false;&quot;&gt;</pre> 里,如果源 HTML 是 <code class="js"> 单独存在,高亮语言信息就丢了

  • HTML 转 PDF 时中文不显示或乱码

    90% 是字体没嵌入,不是编码问题——utf-8 已是默认,但多数 PDF 生成库(如 pdfmakejsPDF)自带字体不包含中文字形。

    性能影响明显:强行用 addFont 加载 10MB 的 Noto Sans CJK,首屏生成延迟从 200ms 拉到 2s+。

    • pdfmake 必须预处理字体:用 pdfmake/fonts 工具把 ttf 转成 base64 字符串,再在 vfs.js 里注册,漏一步就空白
    • jsPDF + html2canvas 组合更灵活,但要设 useCORS: true 且服务端允许跨域,否则图片和字体资源加载失败静默丢弃
    • 服务端生成(如 Puppeteer)最省心:page.pdf({ fontEmbedding: true }) 自动处理,但得确保 docker 容器里装了 fonts-wqy-zenhei 这类中文字体包

    为什么本地双击打开 HTML 文件转 json 会失败

    因为浏览器同源策略限制:file:// 协议下,fetch("./data.html")XMLhttpRequest 直接被拒,控制台报 net::ERR_FAILED,不是代码写错了。

    容易踩的坑:调试时以为是路径写错,反复改 ./ ../,其实根本没发出去请求。

    • 开发阶段用 npx http-server 起个本地服务,地址变成 http://localhost:8080 就一切正常
    • 如果必须离线运行,改用 FileReader 读取本地文件:input[type="file"] 触发后调 readAsText,绕过网络请求
    • electron 或 Tauri 应用不受此限,但要注意 webPreferences.contextIsolation 开启后,需用预加载脚本暴露 fs API

    真正麻烦的是混合场景:HTML 里有相对路径的 CSS/JS,用 FileReader 读进来后这些资源全 404——这时候不是转格式的问题,是整个加载模型得重设计。

text=ZqhQzanResources