我使用mysql服务器5.6命令行发现了这种奇怪的行为。

如果我做:

source C:\Users\dyesdyes\Downloads\test.sql


该文件中的代码是:

insert into `tWord`(`word`,`frequency`) values
('à',16994.68);


创建tWord表的SQL是:

CREATE TABLE IF NOT EXISTS `tWord` (
  `idWord` INT(11) NOT NULL AUTO_INCREMENT,
  `word` VARCHAR(45) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NOT NULL,
  `frequency` DOUBLE NULL DEFAULT NULL,
  PRIMARY KEY (`idWord`),
  UNIQUE INDEX `idWord_UNIQUE` (`idWord` ASC),
  INDEX `word` (`word` ASC),
  INDEX `idWord` (`idWord` ASC))
ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARACTER SET = utf8;


错误是:


  错误1366(HY000):字符串值不正确:'word'列为'\ xE0'
  在第1行


如果我在工作台客户端中执行相同的插入语句,则可以正常工作。使用命令行只会给出一个错误...

有什么提示吗?

最佳答案

.sql文件应采用UTF8编码。文本编辑器应具有一个保存设置的设置。

09-11 18:05