В файле node.js отображаются неверные символы utf-8, как это исправить? - PullRequest
0 голосов
/ 01 июня 2019

Я новичок в node.js, и я попытался настроить HTTP-сервер. Я пришел из веб-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 natejte na moj na webovĂ © stránce!

1 Ответ

1 голос
/ 01 июня 2019

То, что сказал @thomas: вам нужно отправить заголовок в браузер, чтобы сообщить ему, какой набор символов будет использоваться для визуализации вашего текста.

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

Некоторые браузеры на некоторых хост-машинах иногда могут делать правильные вещирендеринг текста, если вы этого не делаете.Но вы не должны полагаться на этот шанс, особенно для простого текста.

Pro tip : весь смысл nodejs как платформы заключается в организации использования хороших библиотек.Узел - это не кусок дерева, из которого вы вырезаете скульптуру, это набор блоков лего: действительно хорошие блоки лего.Нет смысла избегать библиотек, если вы не хотите заново изобретать спущенное колесо.Вы не можете избежать их: вы уже используете библиотеку http.(Да, он встроен, но все еще является библиотекой.)

Учиться можно с использованием минимальных библиотек.Но если вы хотите на самом деле обслуживать визуализированные HTML или файлы из вашей файловой системы, вам нужно использовать экспресс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...