MySQL to Windows cmd 插入汉字出现奇怪问题

Wierd problems when insert Chines characters into MySQL via Windows cmd

我的环境

MySQL 设置

我的问题

在上面描述的环境和数据库设置下,我试图在创建的tablecs_2中插入一条记录,但是,它失败了。

SQL语句如下:

insert into cs_2 (direction) values('出');

结果是:

ERROR 1366 (HY000): Incorrect string value: '\xBA' for column 'direction' at row 1

个人分析

在对 mysql 字符转换和 Windows cmd 输入转换进行了一些研究后,我得到了以下指导:

Keyborad typing -> inputmethod conversion -> system inner encoding

在我的例子中,系统内部编码是UTF-16 LE格式的'出'

字节流

system inner encoding -> character_set_client -> character_set_connection -> character set of table

就我而言,这是

UTF-16 LE -> gbk -> gbk ->gbk

仅在系统内部编码和character_set_client之间开始时发生转换。而且我还以为转换是系统自己做的

因此,在这种假设下,插入SQL应该运行成功,但是失败了!不知道为什么,我已经为这个问题纠结了好几天了,还是找不到解决办法。

如果有哪位碰巧遇到过这个问题,请给我一些线索。非常感谢!

在 mysql 中创建数据库或 table 时,您必须指定要以 utf-8 格式创建此 table(如果需要,则需要使用中文字符集执行操作)
创建具有 utf8 格式字符集的 table(或者可能更好的整个数据库):

将table转换为utf8:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;

将整个数据库转换为 utf8 看这个答案:
How to convert an entire MySQL database characterset and collation to UTF-8?

从头开始创建一个utf8数据库使用以下命令:

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

(来源https://dba.stackexchange.com/a/76789

这应该能解决您的问题。