我在使用gulp
版本3.8.11处理的Visual Studio 2013 wep应用程序项目中有几个源文件。这些文件是Unicode (UTF-8 with signature) - Codepage 65001
编码的文本文件。处理后,它们显示为Windows 1252编码的文本文件。
例如,给定以下UTF-8 encoded
src/hello.html
文件:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello, my name is Jesús López</h1>
</body>
</html>
这就是浏览器的外观:
使用以下gulpfile.js
:
var gulp = require('gulp');
gulp.task('build', function () {
gulp.src('src/hello.html')
.pipe(gulp.dest('dist'));
});
在命令行上执行gulp build
后,这就是它在浏览器上的显示方式:
如何解决此编码问题?请帮忙。
答案 0 :(得分:15)
我对.cshtml文件有同样的问题,我发现这是因为缺少UTF-8 BOM。这可以很容易地添加一个名为gulp-header的gulp-plugin。
var gulp = require('gulp');
var header = require('gulp-header');
gulp.task('build', function () {
gulp.src('src/hello.html')
.pipe(header('\ufeff'));
.pipe(gulp.dest('dist'));
});
答案 1 :(得分:1)
我有类似的问题,我通过添加
来解决它var convertEncoding = require('gulp-convert-encoding');
gulp.task("copy:templates", function () {
return gulp
.src("./app/**/*.html")
.pipe(convertEncoding({ from: "windows1250", to: "utf8" }))
//.pipe(header('\ufeff'))
.pipe(gulp.dest("./wwwroot/app"));
});
gulp.task('build:ts', function () {
return gulp.src("./app/**/*.ts")
.pipe(sourcemaps.init())
.pipe(typescript(tsconfigBuildTs))
.pipe(sourcemaps.write())
.pipe(convertEncoding({ from: "windows1250", to: "utf8" }))
.pipe(gulp.dest("./wwwroot/app/"));
});
最重要的一行是
.pipe(convertEncoding({ from: "windows1250", to: "utf8" }))
您应该在文件&gt;中检查您的文件编码。高级保存。我的设置为windows1250你可能会有所不同。