MySql 命令行西里尔文 Iinsert 结果已损坏

ser*_*nni 3 mysql command-line character-set

有腻子连接。
Putty 配置:
窗口-->翻译-->远程字符集-->utf-8
启动命令行MySQL客户端。
使用西里尔字母执行插入,例如:

CREATE TABLE `category` (
  `catName` varchar(40) NOT NULL DEFAULT '',
  PRIMARY KEY (`catName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into category(catName) values ('????????');
Run Code Online (Sandbox Code Playgroud)

结果是损坏的西里尔文符号插入到 DB 中。

hel*_*ylo 6

默认情况下,MySQL 服务器为每个传入连接使用 latin1 字符集。您可能知道,Latin1支持西里尔符号。

最简单的解决方案是通过SET NAMES 'utf8';在每个连接的开头运行来切换所谓的“连接字符集” 。

例如,这个查询应该可以工作:

SET NAMES 'utf8';

CREATE TABLE `category` (
  `catName` varchar(40) NOT NULL DEFAULT '',
  PRIMARY KEY (`catName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into category(catName) values ('?????? ??????-?????????? ???????');
Run Code Online (Sandbox Code Playgroud)

要了解 MySQL 中的字符集以及如何进行上述更改,请参见此处