使用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,編碼格式如下 資料庫中表與字段的編碼全部...