Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Javascript 如何在Nodejs中处理utf-8编码的文本?_Javascript_Node.js_Character Encoding - Fatal编程技术网

Javascript 如何在Nodejs中处理utf-8编码的文本?

Javascript 如何在Nodejs中处理utf-8编码的文本?,javascript,node.js,character-encoding,Javascript,Node.js,Character Encoding,我正在尝试将文本从已送达的HTML表单发送到服务器。我的问题是,文本似乎仍然用utf8编码?我不知道如何将文本解码回原始形式 html文件 var body = '<html>'+ '<head>'+ '<meta http-equiv="Content-Type" content="text/html; '+ 'charset=UTF-8" />'+ '</head>'+ '<body>'+ '<form action="/up

我正在尝试将文本从已送达的HTML表单发送到服务器。我的问题是,文本似乎仍然用utf8编码?我不知道如何将文本解码回原始形式

html文件

var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/upload" method="post">'+  //sends POST req to /upload
'<textarea name="text" rows="20" cols="60"></textarea>'+
'<input type="submit" value="Submit text" />'+
'</form>'+
'</body>'+
'</html>';
打印:“所有数据到达:text=blah+blah+blah%21”

我尝试过将响应的内容头设置为UTF-8,并将StringDecoder设置为如下所示,但两者似乎都不起作用。

您能试试吗

var querystring = require("querystring")

var text = querystring.parse(postData).text;
console.log("all Data arrived: " + text);
我不知道这个postData.push是否有效。作为替代方案,您也可以尝试:

var postData = "";
req.on('data', function(postDataChunk) {
  postData += postDataChunk;

我们很清楚,你希望它能给你什么?您要返回的内容(
text=blah+blah+blah%21
)是utf8文本,但由于您是通过表单提交的,因此会将其发送到服务器,编码为
application/x-www-form-urlencoded
。通常你会用类似的东西来解码。啊,所以表单有自己的编码。我原以为它会报答“废话废话!”。现在我来看看主体解析器。谢谢是的,文本编码与表单值的表示方式无关。但是,服务器需要有某种方法来知道哪些值映射到哪些键,因为表单可能不仅仅有一个
文本
字段。
var postData = "";
req.on('data', function(postDataChunk) {
  postData += postDataChunk;