[英]MySQL. Can't insert russian characters into column with a type VARCHAR(45)
尝试在MySQL(Workbench)中执行此行时遇到问题:
INSERT INTO classification (`Type`, `Subtype`) VALUES ("тип", "подтип");
我尝试为表classification
设置不同的字符集:cp1251,utf-8,utf8mb4,cp1251_bin。
这是一个表,其中包含我在数据库中找到的所有字符集,也许会对您有所帮助:
UPD。 我找到了解决方案。 但是,我必须更改表,所以现在表risk
是已编辑的表classification
。 SHOW CREATE TABLE risk
的结果是:
'CREATE TABLE `risk` (
`IdRisk` int(11) NOT NULL AUTO_INCREMENT,
`IdSubtype` int(11) DEFAULT NULL,
`Content` varchar(4000) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`IdRisk`),
KEY `FK_subtype_risk_idx` (`IdSubtype`),
CONSTRAINT `FK_subtype_risk` FOREIGN KEY (`IdSubtype`) REFERENCES `subtype` (`IdSubtype`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=latin1'
找不到解决此问题的方法。 我希望有人知道解决方案。
谢谢!
该表的CHARACTER SET
是该表中列的默认设置 。 请提供SHOW CREATE TABLE
以便我们可以验证列设置为什么。
客户端中字节的编码是什么? cp1251
与utf8
不同; utf8mb4
== utf8
(俄语)。
事情以什么方式不好? 根据症状,看到这对其他可能被错误地设置具体的提示。
也许是您对NVARCHAR
所做的更改导致在列上强制使用CHARACTER SET utf8
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.