【问题标题】:Incorrect utf-8 characters displayed in node.js, how to fix that?node.js 中显示的 utf-8 字符不正确,如何解决?
【发布时间】:2019-06-01 20:18:07
【问题描述】:

我是 node.js 的初学者,我尝试设置 HTTP 服务器。我来自 web Javascript,我对 node.js 知之甚少。我尝试了来自 nodejs.org 的代码,它有效,但是当我尝试像“á”或“Š”这样的字符时,它显示不正确。

我尝试使用 express.js 之类的库,它解决了问题,但我是普通人 - 我不喜欢库,而且事实证明,我什至很难用不同的 URL 显示不同的页面。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Vítejte na mojí webové stránce!');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

结果: VĂtejte na mojĂ webovĂ© stránce!

【问题讨论】:

标签: javascript node.js utf-8 character-encoding


【解决方案1】:

@thomas 说的是:您需要向浏览器发送一个标头,告诉它使用哪个字符集来呈现您的文本。

res.setHeader('Content-Type', 'text/plain; charset=utf-8');

如果您不这样做,某些主机上的某些浏览器有时可能会正确地呈现文本。但是您不应该依赖这个机会,尤其是对于纯文本。

专业提示:nodejs 作为一个平台的全部意义在于组织你对好的库的使用。 Node 不是用来雕刻雕塑的木块,而是一组乐高积木:非常好的乐高积木。除非您想重新发明瘪胎,否则避免使用图书馆是没有意义的。你无法避免它们:你已经使用了http 库。 (是的,它是内置的,但它仍然是一个库。)

使用最少的库来学习很好。但是如果你想从你的文件系统中实际提供渲染的 html 或文件,你需要使用 express。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2011-08-09
    • 2023-04-02
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    相关资源
    最近更新 更多