Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上gulp的编码问题_Windows_Visual Studio_Web_Character Encoding_Gulp - Fatal编程技术网

Windows上gulp的编码问题

Windows上gulp的编码问题,windows,visual-studio,web,character-encoding,gulp,Windows,Visual Studio,Web,Character Encoding,Gulp,我在Visual Studio 2013 wep应用程序项目中有几个源文件,我使用gulp3.8.11版处理这些文件。这些文件是Unicode(带签名的UTF-8)-Codepage 65001编码文本文件。经过处理后,它们显示为Windows 1252编码的文本文件 例如,给定以下UTF-8编码的src/hello.html文件: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g

我在Visual Studio 2013 wep应用程序项目中有几个源文件,我使用
gulp
3.8.11版处理这些文件。这些文件是
Unicode(带签名的UTF-8)-Codepage 65001
编码文本文件。经过处理后,它们显示为Windows 1252编码的文本文件

例如,给定以下
UTF-8编码的
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>
在命令行上执行
gulpbuild
后,它在浏览器上的外观如下:


如何解决这个编码问题?请帮助。

我对.cshtml文件也有同样的问题,我发现这是因为缺少UTF-8 BOM。可以很容易地添加一个名为gulpheader的gulp插件

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'));
});

我遇到了类似的问题,我通过添加

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" }))

您应该在文件>高级保存中检查您的文件编码。我的设置为windows1250,你的可能不同。

这很有趣。我已经浏览了
gulp
源代码,使用gulp3似乎不可能将编码选项传递到
gulp.src
。你可能会有一些运气与一些插件。快速的谷歌搜索将返回许多结果。我想你应该向gulp开发者提出这个问题。你的gulp版本是什么?@Lim H。我尝试了
gulp转换编码
,但没有成功。我在gitub上提出了一个问题。@Felipe Skinner,版本是3.8.11谢谢你的回答。但是,我们不得不手动完成这项工作,这有点可笑——我希望
dest()
有一个用于编码的参数。想了解当前行为背后的基本原理。
.pipe(convertEncoding({ from: "windows1250", to: "utf8" }))