当前位置:Gxlcms > mysql > mysql-node.js解析input中文报错

mysql-node.js解析input中文报错

时间:2021-07-01 10:21:17 帮助过:51人阅读

mysqlnode.js表单数据库

通过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='

注册成功

' 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);}

人气教程排行