日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

定义mysql字段的编码模式_在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式。...

發布時間:2025/3/19 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定义mysql字段的编码模式_在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式。... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近看了一下KIGG框架,發現在用EF + MYSQL數據庫時,數據出現了亂碼,用工具(Navicat )查看一下表category的結構發現 KIGG 數據庫的默認情況是用latin1編碼的(DEFAULT CHARSET=latin1), 如下:

CREATETABLE`category`?(`Id`binary(16)NOTNULL,

`UniqueName`varchar(64)NOTNULL,

`Name`varchar(64)NOTNULL,

`CreatedAt`datetimeNOTNULL,PRIMARYKEY(`Id`),KEY`IX_Category_UniqueName_CreatedAt`?(`UniqueName`,`CreatedAt`)

)?ENGINE=InnoDBDEFAULTCHARSET=latin1;

我把表的編碼格式改成 utf8. 查看表category 發現表的DDL 變成了,

CREATETABLE`category`?(

`Id`binary(16)NOTNULL,

`UniqueName`varchar(64)charactersetlatin1NOTNULL,

`Name`varchar(64)charactersetlatin1NOTNULL,

`CreatedAt`datetimeNOTNULL,PRIMARYKEY(`Id`),KEY`IX_Category_UniqueName_CreatedAt`?(`UniqueName`,`CreatedAt`)

)?ENGINE=InnoDBDEFAULTCHARSET=utf8;

發現在原來的表中之前定義的列(字段)的編碼類型不會因為表的編碼格式而變化,還是latin1(拉丁文格式), 但新建列的類型為是UTF8格式的。由此可見MYSQL中的數據編碼格式已經粒子化到 單位“列”。 在建 數據庫的時候可以指定數據庫編碼格式,在這之后所建的表和列的編碼格式都會以此格式為默認格式。若之后想改數據庫的編碼格式的話,想要把之前的表和列的編碼格式都改過來的話就要一一改過來了。所以,我們要使不擔心數據庫的編碼格式,只要在 MYSQL的安裝目錄下面X:\Program File\MySQL5 下面找到一個my.ini 文件,用記事本打開找到

default-character-set=你要設置的編碼格式 。修改其格式即可。在后面建庫,建表,建字段就不要做其它的設置,除非你要特別要求。

KIGG例子中 EF + MYSQL 的亂碼原因是因為程序提交給數據庫是文件是UTF8格式的但數據庫中字段接收的格式卻是latin1 格式的,所以只要將列改為UTF8格式即可。

總結:對于慣用微軟的的SQLSERVER 的用戶來說很少觀注數據庫數據的編碼格式,因為微軟已經幫用戶做完了那些邊角的工作,所以使我們忽略很多重要的事。在用MYSQL中要注意 其中的數據庫,表,列 對應的編碼格式沒有包含關系,最終決定內容以什么編碼格式保存下來還是 定義列時指定的編碼(`Name`varchar(64)charactersetlatin1NOTNULL,),在建庫和表時設置編碼格式只是相當與為自己的下一級設置默認編碼格式。

總結

以上是生活随笔為你收集整理的定义mysql字段的编码模式_在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。