mysql表单输入数据出现中文乱码解决方法

MySQL会出现中文乱码的原因在于
1.server本身设定问题,一般来说是latin1

2.建库建表时没有制定编码格式。

解决方法:

1.建库的时候

1 CREATE DATABASE test  
2 CHARACTER SET 'utf8'  
3 COLLATE 'utf8_general_ci'; 

2.建表的时候

1 CREATE TABLE content (  
2     text VARCHAR(100)
3 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

基本就不会出问题了,即建库和建表时都使用相同的编码格式。

1.查看默认编码格式: 

show variables like "%char%"; 

以下是修改后的

mysql> show variables like "%char%"; 
+--------------------------+---------------------------------------------------------+
| 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       | /usr/local/mysql-5.7.13-osx10.11-x86_64/share/charsets/ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.01 sec)

2.查看test数据库的编码格式:

1 +----------+---------------------------------------------------------------+
2 | Database | Create Database                                               |
3 +----------+---------------------------------------------------------------+
4 | test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
5 +----------+---------------------------------------------------------------+
6 1 row in set (0.00 sec)

 

如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK
1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;
3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用
utf8或者gbk;

地址 http://sshpark.com.cn/
原文地址:https://www.cnblogs.com/huangjiaming/p/5706708.html