LINUX.ORG.RU

Изучаю nodejs. Что не так с кодировкой в post запросе?

 


0

3
const http = require('http');

http.createServer((req, res) => {
	switch(req.method) {
		case "GET":
			res.writeHead(200, {
				"Content-Type": "text/html;charset=utf-8"
			});
			res.end(`<form method="post" action="/=">
						<input type="text" name="myName">
						<input type="submit" name="submit" value="Отправить">
					</form>`);
		break;
		case "POST":
			req.on('data', data => {
				res.writeHead(200, {
					"Content-Type": "text/html;charset=utf-8"
				});
				req.on('end', () => {
					res.end("Строка post запроса: " + data.toString());
				});
			});	
		break;
	}
}).listen(3000, () => {
	console.log("Server is running");
});

Такая проблема только с кириллицей


Ответ на: комментарий от egorcod

Рано еще

хочу постичь основы.

KRex
() автор топика
Ответ на: комментарий от deadNightTiger

И как это поможет

решить проблему?

KRex
() автор топика
Ответ на: комментарий от Dred

Да в utf-8

Приходит ответ в таком формате:

Строка post запроса: myName=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9&submit=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C

KRex
() автор топика
Ответ на: т.е от KRex

Так и должно быть. А ещё в JSON-е можно встретить что-то типа \u0440 вместо р и т.д.

peregrine ★★★★★
()
Ответ на: комментарий от Dred

Спасибо за пояснения

Просто интересно, попробовал этот же пример на php. Такой проблемы нет. Из формы информация попадает в post в исходном виде (как ввел) без всяких преобразований. Значит все-таки это ньюанс node

KRex
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.