2015-06-20 3 views
-1

Я пытаюсь вставить строку в MySQL из узла с помощью mysql2 драйвера, и я получаю следующее сообщение об ошибке:Mysql ошибка кодирования

running query \"INSERT INTO outgo (name, monthIdMonth, type, distribution, recurrent, amount) VALUES ('Penalizări', (select MAX(idMonth) from `month`), '3', '1', '1', '0');\" 
failed: Error: Incorrect string value: '\\xC4\\x83ri' for column 'name' at row 1 

В таблице опережать создается так:

CREATE TABLE IF NOT EXISTS `outgo` (
 
    `idOutgo` INT UNSIGNED NOT NULL AUTO_INCREMENT, 
 
    `name` VARCHAR(50) NOT NULL, 
 
    `apartmentsGroupIdApartmentsGroup` INT UNSIGNED NULL, 
 
    `outgoColumnInfoIdOutgoColumn` INT UNSIGNED NULL, 
 
    `metering` ENUM('NONE','COLD_WATER','HOT_WATER','OTHER') NULL, 
 
    `distribution` ENUM('MANUAL','PERSON','APARTMENT','SURFACE','CONSUMPTION', 'AUTOMATED','HEAT_SURFACE') NULL, 
 
    `amount` DOUBLE(14,2) NULL, 
 
    `cAmount` DOUBLE(14,2) NULL, 
 
    `costPerUnit` DOUBLE(15,3) NULL, 
 
    `unit` VARCHAR(5) NULL, 
 
    `quantity` DOUBLE(14,2) NULL, 
 
    `diffs` DOUBLE(14,4) NULL, 
 
    `recurrent` TINYINT(1) NOT NULL DEFAULT 0, 
 
    `monthIdMonth` INT UNSIGNED NOT NULL, 
 
    `type` ENUM('GENERAL','REMAINING','PENALITY') NOT NULL DEFAULT 'GENERAL', 
 
    `billIdBill` INT UNSIGNED NULL, 
 
ENGINE = InnoDB;

Любая идея, в чем проблема? Строка, на которую он жалуется, это: «Penalizări». схема кодирования utf8 ....

+0

показать 'SHOW CREATE TABLE' для' outgo'. И какова кодировка соединения? – zerkms

+0

Я не указываю кодировку соединения. Как я мог узнать? Это то, что команда «locale» возвращает на linux? – Petru

+0

Вы можете показать код, используемый для вставки строки? –

ответ

1

Так, в конце концов, я нашел решение: я добавил параметр кодировки для соединения узла:

var pool = mysql.createPool({ 
    host  : config.get.mysql.host, 
    port  : config.get.mysql.port, 
    user  : config.get.mysql.username, 
    password : config.get.mysql.password, 
    database : 'general', 
    connectionLimit : 50, 
    queueLimit : 5000, 
    charset: "utf8_general_ci" 
}); 
Смежные вопросы