mysql字符集支持中文

xiaoxiao2021-02-28  89

方法一: 登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句

? 1 2 mysql> set names latin1; mysql> source test.sql;

方法二: 在SQL文件中指定set names latin1;然后登录MySQL,执行相应文件

? 1 2 3 4 [root@localhost ~]# cat test.sql set names latin1; insert *****************; mysql> source test.sql;

方法三: 在SQL文件中指定set names latin1;然后通过MySQL命令导入

? 1 [root@localhost ~]# mysql -uroot -p123456 test <test.sql

方法四: 通过指定MySQL命令的字符集参数实现--default-character-set=latin1

? 1 2 3 [root@localhost ~]# cat test.sql insert *****************; [root@localhost ~]# mysql -uroot -p123456 --default-character-set=latin1 test <test.sql

方法五:推荐此方法,但是建议使用utf8 在配置文件里设置客户端以及服务器端相关参数 即修改my.cnf 客户端的模块参数,可以实现set names utf8,且永久生效

? 1 2 3 4 5 6 [client]   default-character-set=utf8   无需重启MySQL,退出当前登录,重新登录即可 [server]   default-character-set=utf8 5.1以前的版本   character-set-server=utf8 5.5版本

库表,程序!

复制代码 代码如下: CREATE DATABASE wyb  DEFAULT CHARACTER SET utf8 collate utf8_general_cli; 字符集含义总结表 ? 1 2 3 4 5 6 7 mysql> show variables like 'character_set%' ;    | character_set_client  | utf8  #客户端字符集      | character_set_connection | utf8  #链接字符集      | character_set_database | utf8  #数据库字符集,配置文件指定或者创建时指定      | character_set_results | utf8  #返回结果字符集       | character_set_server  | utf8  #服务器字符集,配置文件,或者创建库,表时候指定

在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度。

下面我们就直接使用如下操作解决:

 

一、打开mysql控制台,输入命令show variables like 'character%';

  显示如下:

  +--------------------------+-------------------------------------------+ | Variable_name      | Value                   | +--------------------------+-------------------------------------------+ | character_set_client   | latin1                  | | character_set_connection | latin1                  | | character_set_database  | utf8                   | | character_set_results  | latin1                  | | character_set_server   | utf8                   | | character_set_system   | utf8                   | | character_sets_dir    | C:\MySQL\MySQL Server 5.0\share\charsets\ | +--------------------------+-------------------------------------------+

二、修改my.ini文件

  [client]

  default-character-set=utf8

  [mysqld]   default-storage-engine=INNODB   character-set-server=utf8   collation-server=utf8_general_ci

三、重启后使用第一步的命令查看,如下:

  +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 还有character_set_database和character_set_server的默认字符集还是latin1。

四、输入命令:set names utf8;

  重启后,使用第一步命令查看:

+--------------------------+------------------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\wamp64\bin\mysql\mysql5.7.9\share\charsets\ | +--------------------------+------------------------------------------------+

除了character_set_filesystem是binary外,其他都是utf8了,

这样在web端也设置成utf8编码就可以正常输入数据库了。

转载请注明原文地址: https://www.6miu.com/read-71757.html

最新回复(0)