【发布时间】:2015-06-27 16:52:01
【问题描述】:
我正在尝试使用 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”。 Schema 编码是 utf8....
【问题讨论】:
-
为
outgo显示SHOW CREATE TABLE。什么是连接编码? -
我没有指定连接编码。我怎么知道?它是 linux 上返回的“locale”命令吗?
-
你能显示用于插入行的代码吗?
-
您是否尝试使用
ă?它的 utf8 十六进制是 C483。一个猜测:你没有指定utf8 all the way through
标签: mysql node.js utf-8 character-encoding