【问题标题】:HTML encoding happening with Gulp on Windows在 Windows 上使用 Gulp 进行 HTML 编码
【发布时间】:2018-04-01 00:16:33
【问题描述】:

我创建了一个名为php-include-html 的 Gulp 插件,它扫描 Gulp 中的 php 文件并处理 include 和 require 语句以内联 HTML sn-ps。

gulpfile的sn-p是这样的……

var gulp = require("gulp");
var pump = require("pump");
var phpinc = require("php-include-html");

gulp.task("php",function(cb) {
  pump([
    gulp.src("*.php"),
    phpinc({verbose:true}),
    gulp.dest("build")
  ],cb);
});

这是处理前的php文件中的sn-p...

<!DOCTYPE html>
<html lang="en-gb">
  <head>
    <title>Emma Malik's Official Website - Legal</title>

这是处理后的相同sn-p...

<!DOCTYPE html>
<html lang="en-gb">
  <head>
    <title>Emma Malik&amp;s Official Website - Legal</title>

如您所见,撇号已经过 HTML 编码。但是,它似乎不是所有的 & 符号,只是其中的一些,还有一些其他字符,例如 > 到 >,但又不是全部。

一直到我的插件,这仍然是一个撇号,它似乎是 gulp.dest 重写文件以某种方式转换它。

我尝试过的事情......

  1. 从源文件(strip-bom 和 strip-bom-buf)
  2. 将 UTF-8 BOM 添加到目标文件(gulp-header)
  3. 使用字符串操作而不是 String.replace
  4. 将目标内容转换为 UTF-8 (gulp-convert-encoding)
  5. 在 gulp.dest (gulp-html-entities) 之前在我的插件之后解码
  6. 使用乙烯基文件

以前有没有人见过这样的事情,或者知道如何解决它?

【问题讨论】:

    标签: utf-8 gulp node-modules


    【解决方案1】:

    虚惊一场,原来是“gulp-sri-hash”插件,在我的后面跑,就是干这个的。我需要进一步调查到底是什么原因造成的,但至少我发现不是我!

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多