【发布时间】: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&s Official Website - Legal</title>
如您所见,撇号已经过 HTML 编码。但是,它似乎不是所有的 & 符号,只是其中的一些,还有一些其他字符,例如 > 到 >,但又不是全部。
一直到我的插件,这仍然是一个撇号,它似乎是 gulp.dest 重写文件以某种方式转换它。
我尝试过的事情......
- 从源文件(strip-bom 和 strip-bom-buf)
- 将 UTF-8 BOM 添加到目标文件(gulp-header)
- 使用字符串操作而不是 String.replace
- 将目标内容转换为 UTF-8 (gulp-convert-encoding)
- 在 gulp.dest (gulp-html-entities) 之前在我的插件之后解码
- 使用乙烯基文件
以前有没有人见过这样的事情,或者知道如何解决它?
【问题讨论】:
标签: utf-8 gulp node-modules