【问题标题】:Unknown Encoding Error in Node.jsNode.js 中的未知编码错误
【发布时间】:2017-09-23 02:59:27
【问题描述】:

我是 Node.js 的新手,遇到一个让我恼火 2 天的错误!

JS 看起来像这样:

var http = require('http');
var fs = require('fs');

var server = http.createServer(function(req, res) {
 console.log("A request was made of url : " + req.url);
 res.writeHead(200, { 'Content-Type': 'text/html' });
 var data = fs.createReadStream(__dirname, '/index.html', 'utf8');
 data.pipe(res);
});
server.listen(4242);
console.log("Server is running.....");

这是 HTML 文件:

<!DOCTYPE <html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Index Website</title>
</head>

<body>
<h1>Some HTML</h1>
</body>

</html>

但我最终得到了这个错误:

string_decoder.js:13
throw new Error(`Unknown encoding: ${enc}`);
^

Error: Unknown encoding: /index.html
at normalizeEncoding (string_decoder.js:13:11)
at new StringDecoder (string_decoder.js:22:19)
at new ReadableState (_stream_readable.js:99:20)
at ReadStream.Readable (_stream_readable.js:108:25)
at new ReadStream (fs.js:1907:12)
at Object.fs.createReadStream (fs.js:1885:10)
at Server.<anonymous> (G:\Docs\Node.js\server.js:7:19)
at emitTwo (events.js:106:13)
at Server.emit (events.js:191:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:546:12)

谁能告诉我出了什么问题,或者指出我正确的方向?

【问题讨论】:

  • 你好像用错了fs.createReadStream
  • 你能解释一下错误吗?
  • fs.createReadStream 接受参数 fs.createReadStream(path[, options]) 因此对于您的情况,您应该像 fs.createReadStream(`${__dirname}/index.html`, {encoding: 'utf8'}) 一样编写它
  • 非常感谢先生!这解决了我的问题,我现在感觉很放松:)
  • 我会用这个答案发表评论。请标记正确。

标签: javascript node.js server character-encoding


【解决方案1】:

fs.createReadStream 带参数

fs.createReadStream(path[, options])

所以对于你的情况,你应该像这样写

fs.createReadStream(`${__dirname}/index.html`, {encoding: 'utf8'})

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 2014-03-04
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多