阿琛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 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记