mysql中文亂碼問題

2021-08-27 08:01:50 字數 2369 閱讀 8549

使用mysql過程中,發現了乙個老生常談的問題,中文亂碼,在此記錄下自己的問題查詢及解決方法。

建立資料庫語句

create database springdb default character set utf8 collate utf8_general_ci;
建表tb_user 語句

create table tb_user(

id int not null auto_increment,

username varchar(100),

login_name varchar(100),

*** char(4),

age int,

primary key (id)

);

接下來我們在命令視窗插入資料,並檢視

mysql> insert into tb_user(age, login_name, ***, username) values(21, 'lisi', '男', '張三');

query ok, 1 row affected (0.06 sec)

mysql> select * from tb_user;

+----+----------+------------+------+------+

| id | username | login_name | *** | age |

+----+----------+------------+------+------+

| 1 | 張三 | lisi | 男 | 21 |

+----+----------+------------+------+------+

1 row in set (0.03 sec)

mysql>

通過應用儲存進來一條資料,發現亂碼了,說明亂碼應該是應用與資料庫銜接地方出錯了

mysql> insert into tb_user(age, login_name, ***, username) values(21, 'lisi', '男', '張三');

query ok, 1 row affected (0.02 sec)

mysql> select * from tb_user;

+----+-----+------------+-----+----------+

| id | age | login_name | *** | username |

+----+-----+------------+-----+----------+

| 1 | 3 | xlei | ? | ?? |

| 2 | 21 | lisi | 男 | 張三 |

+----+-----+------------+-----+----------+

2 rows in set (0.00 sec)

mysql>

經檢查,發現是應用連線資料庫的地方,未設定連線資料庫的編碼格式

原資料庫連線位址 

spring.datasource.url = jdbc:mysql://localhost:3306/springdatajpa
新資料庫連線位址

spring.datasource.url = jdbc:mysql://localhost:3306/springdatajpa?useunicode=true&characterencoding=utf-8
其中,多了useunicode=true&characterencoding=utf-8,告訴資料庫預設字元編碼為utf-8。

之後,再通過應用向資料庫插入資料便可正常顯示了

mysql> select * from tb_user;

+----+-----+------------+-----+----------+

| id | age | login_name | *** | username |

+----+-----+------------+-----+----------+

| 1 | 3 | xlei | ? | ?? |

| 2 | 21 | lisi | 男 | 張三 |

| 6 | 3 | xlei | 男 | 徐磊 |

+----+-----+------------+-----+----------+

3 rows in set (0.00 sec)

mysql>

mysql 中文亂碼問題

表現一 插入中文的時候顯示data too long 二 插入成功後,search出來的結果顯示亂碼.解決方法如下 1 只要是gb2312,gbk,utf8等支援多位元組編碼的字符集都可以儲存漢字,當然,gb2312中的漢字數量遠少於gbk,而gb2312,gbk等都可在utf8下編碼 2 用命令s...

mysql中文亂碼問題

環境 windows xp mysql notepad mysql語言設定沒有問題,因為直接使用insert語句往表中插入資料沒有問題,但把insert寫入到檔案中,通過source sql的形式插入,就會出現中文亂碼。這時候使用linux環境編寫.sql檔案,在拿到windows環境執行,沒有問題...

MySql中文亂碼問題

亂碼問題是經常遇到的問題,也是比較頭疼的問題,網上資料也非常多,最近在專案實施時也出現過這個問題,在此記錄下解決方式。先描述下我遇到的問題,開發環境為eclipse,編碼格式為utf 8,web伺服器為tomcat,編碼格式為utf 8,資料庫採用mysql,編碼格式如下 資料庫中表與字段的編碼全部...