mysql中文輸入問題

涉及到中文問題,大多都是編碼類型的問題啦。
我們首先看看默認mysql創建表后使用的編碼類型是什么吧。
下圖中我們首先創建了一個表test。

create table test(name char(20);
3DAB6F0C-AC53-4134-BA44-FEA01C55C838.png

然后我們可以使用命令

SHOW FULL COLUMNS FROM 表名;

來查詢各個列的編碼類型。
我們創建的表只有一列name,從圖中可以看到該列的collation的值為latin1_swdish_ci,這是一種拉丁編碼類型,要想顯示中文,需要使用到utf-8編碼類型。


我們可以先試試在這種拉丁編碼下是否可以插入中文數據。
例如我們使用

insert into test values('張三');

我們會發現,插入操作遇到了error,即并不能插入成功。

5CBCA151-8D98-4BE2-8B20-6B158EB67DDD.png

接下來,我們試試如何將該列的編碼更改為utf-8類型。

alter table test change name name char(20) character set utf8 collate utf8_general_ci;

如下圖所示:

9FD6BB20-0007-417C-B9BB-F51D740EFBE0.png

此時,我們再次查看name列的編碼類型:
可以看到,此時編碼類型已經變為了UTF-8。

60DC08F6-6F7B-4EB5-A3D2-A3906022958B.png

下面我們再試試,此時能否插入中文數據:
可以看到,此時已經成功將‘張三’插入了表中。

95FE8353-A0DD-4250-9B4D-012568849BBE.png

打印出表中的所有行,可以看到確實已經成功插入。


12C4CCBF-0AA5-42D2-9C39-C11F76D1EFD8.png

說明這種方法是奏效的。但是每次創建表時,默認編碼都是拉丁編碼,如果每次都需要手動修改編碼類型,似乎是一件非常繁瑣的事情。所以我們來看看是否有什么辦法來讓創建表時,默認編碼類型為utf-8;

一開始我查閱很多資料,很多資料需要修改mysql的配置文件,顯得比較復雜,而且一旦配置出錯,會讓我這種小白不知所措的!

下面我們來介紹一種較為簡單的方法,就是在創建database時指定默認的字符集。

CREATE DATABASE 數據庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

這樣,在該數據庫下創建的所有表都默認是utf8字符集的啦!

這個的方法是從這位博主這里知道的,http://blog.csdn.net/tyuttjx/article/details/26576041

O(∩_∩)O~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • 編碼問題一直困擾著開發人員,尤其在 Java 中更加明顯,因為 Java 是跨平臺語言,不同平臺之間編碼之間的切換...
    x360閱讀 2,507評論 1 20
  • 不到萬不得已就將就著看本文吧,別看原文了.錯別字多就算了,到后面還有還多語句的示例代碼都張冠李戴了.當然,本文可能...
    Airmole閱讀 1,704評論 0 4
  • 第7天·21天OH卡顏瘦身課 #玩卡不卡·每日一抽# 每一位都可以通過這張卡片覺察自己: 1、直覺他叫什么名字?L...
    Evayaoyu閱讀 125評論 0 0
  • 我最喜歡的一款產品是下廚房,它是一個有一定廚藝的人和美食愛好者的記錄、分享平臺 我喜歡它有三點原因 第一 它首先滿...
    思考者01閱讀 2,797評論 0 3