2017-10-19 86 views
0

我创建了一个名为php-include-html的Gulp插件,它可以扫描Gulp中的php文件,并且进程包含并需要语句来嵌入HTML片段。在Windows上使用Gulp时发生HTML编码

的gulpfile的片段看起来像这样...

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文件的一个片段:

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

而这里的处理后的相同片段...

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

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

通过我的插件,这仍然是一个撇号,它似乎是最重要的改写文件,它以某种方式转换它。

事情我已经试过......

  1. 从源文件(带BOM和 带BOM-BUF)
  2. 添加UTF-8 BOM来剥UTF-8 BOM目标文件(一饮而尽头)
  3. 使用字符串操作,而不是与string.replace
  4. gulp.dest前的目的地内容转换为UTF-8(一饮而尽,转换编码)
  5. 解码我的插件后(一饮而尽-H TML-实体)
  6. 使用乙烯基文件

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

回答

0

虚惊一场,事实证明它实际上是在我之后运行的“gulp-sri-hash”插件,它正在这样做。我需要进一步调查究竟是什么导致了这一点,但至少我已经发现它不是我!

相关问题