阿琛Bonnie 2016-02-15 03:20 采纳率: 0%
浏览 1535

node.js解析input中文报错

通过nodejs将html页面中的表单内容插入mysql数据库。当input文本框内输入的为英文或数字时完全正确,一旦输入中文,点击提交按钮,服务端显示错误"Incorrect String Value……'
现在检查,数据库所有的字符设置都已经为utf8。nodejs代码中也有req.setEncoding('utf8')。表单form标签中也有accept-charset="UTF-8"。node.js代码、html代码、浏览器编码全部为utf8。请问是哪里的错误导致nodejs不能解析input里的中文?

以下是我node.js的代码:

 var http=require('http');
var mysql=require('mysql');
var qs=require('querystring');

var db=mysql.createConnection({
    host:'127.0.0.1',
    user:'root',
    password:'12345',
    database:'datanews'
});


var server=http.createServer(function(req,res){
    switch (req.method) {
        case 'POST':
            switch (req.url) {
                case '/':
                    addUser(db,req,res);
                    break;
            }
            break;

    }
});
server.listen(3000,'127.0.0.1');

function addUser(db,req,res) {
    var newData='';
    req.setEncoding('utf8');
    req.on(
        'data',
        function(chunck){
            newData+=chunck;
        }
    );
    req.on(
        'end',
        function () {
            var data=qs.parse(newData);
            db.query(
                "INSERT INTO userInfo(nickname,identify,password,gender,birthDay) "+
                " VALUES(?,?,?,?,?)",
                [data.nickname,data.identify,data.password,data.gender,data.birthDay],
                function (err) {
                    if (err) {
                        throw err;
                    }
                    else{
                        console.log("seccussful");
                        var html='<p>注册成功</p>'
                        toBrowser(res,html);
                    }
                }
            )
        }
    )
}

function toBrowser(res,htmldata) {
    res.setHeader('Content-Type','text/html;charset=utf8');
    res.setHeader('Content-Length',Buffer.byteLength(htmldata));
    res.end(htmldata);
}

  • 写回答

1条回答

  • devmiao 2016-02-16 01:02
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog