nodejs 查询mysql数据库的数据显示乱码
运行nodejs代码,结果如下:
D:\Program Files\nodejs>NODE E:\project\test\sqlServer.js
[ RowDataPacket { id: 1, name: 'ÕÅÈý', sex: 'Å®' },
RowDataPacket { id: 2, name: 'ÕÅÄÐ', sex: 'Å®' } ]
[ RowDataPacket { id: 1, name: 'ÕÅÈý', sex: 'Å®' },
RowDataPacket { id: 2, name: 'ÕÅÄÐ', sex: 'Å®' } ]
nodejs代码如下:
var mysql=require('mysql');
var client = mysql.createConnection({
user: 'root',
password: '',
database:'user',
});
client.connect(function (err) {
if(err)
console.log('与mysql数据库建立连接失败');
});
client.query(
'SELECT * FROM userinfo',
function selectCb(err, results, fields) {
if (err) {
console.log(err);
}
else{
if(results)
{
for(var i = 0; i < results.length; i++)
{
console.log(results);
}
}
else{
console.log("失败");
}
}
client.end();
}
);
mysql数据库的语句如下:
create database user character set UTF8;
use user;
create table userinfo
(
id int primary key auto_increment not null,
name varchar(20) not null,
sex varchar(2) not null
);
insert into userinfo
(name,sex)
values
('张三','女');
insert into userinfo
(name,sex)
values
('张男','女');
在mysql下查询的结果:
请问这个问题应该怎样解决?还望路过大虾指点迷津。
连接加一个参数charset试试?
或者在默认的mysqld的配置文件my.ini中的mysqld节加入
character-set-server=utf8
后,然后重启mysqld服务(我使用的是mariadb,不确定这个配置是否可以在mysql中使用)