При работе с библиотекой mysql для ноды(уверен это будет с любой либой) возникает маленькая проблемка - ываывÐ. Это всё из-за кодировки в которой по умолчанию работает сервер базы данных.
Как исправить?
Предлагаю для начала проверить какая кодировка сейчас используется:
> conn.getCharsetSync()
{ charset: 'latin1',
collation: 'latin1_swedish_ci',
dir: '',
min_length: 1,
max_length: 1,
number: 8,
state: 801,
comment: 'cp1252 West European' }
> conn.getCharsetNameSync()
'latin1'
Ну и установить то, что хочется нам:
> conn.setCharsetSync("utf8");
true
conn.query("insert into txt (t) values('раздватри')");
После этого проблем с абракадаброй нет:
Вместе с установкой соединения
Кусочек кода, устанавливающий соединение с БД из geoChat:
this.dbconn = this.mysql.createConnectionSync();
this.dbconn.connectSync(this.config.mysql.host, this.config.mysql.user,
this.config.mysql.pass, this.config.mysql.base);
if (!this.dbconn.connectedSync()) {
console.log(" MySQL connection error " + this.dbconn.connectErrno + ": " + this.dbconn.connectError);
process.exit(1);
} else {
this.dbconn.setCharsetSync("utf8");
console.log(" MySQL connection successful");
process.on('exit', function () {
gc.dbconn.closeSync();
});
}