資料庫 varchar text 字符集選擇

2021-09-03 01:23:12 字數 750 閱讀 2790

utf-8 編碼最大字元長度為 3 位元組,如果遇到 4 位元組的字元就會出現錯誤了。三個位元組的 utf-8 最大能編碼的 unicode 字元是 0xffff,也就是 unicode 中的基本多文平面(bmp)。也就是說,任何不在基本多文平面的 unicode 字元,都無法使用mysql原有的 utf8 字符集儲存。這些不在bmp中的字元包括哪些呢?最常見的就是 emoji 表情( emoji 是一種特殊的 unicode 編碼,常見於 ios 和 android 手機上),和一些不常用的漢字,以及任何新增的 unicode 字元等等。

mysql在5.5.3之後增加了 utf8mb4 的編碼,mb4 就是 most bytes 4 的意思,專門用來相容四位元組的 unicode 。好在 utf8mb4 是utf8 的超集,除了將編碼改為 utf8mb4 外不需要做其他轉換。當然,為了節省空間,一般情況下使用utf8也就夠了。

那上面說了既然 utf8 能夠存下大部分中文漢字,那為什麼還要使用 utf8mb4 呢? 原來 mysql 支援的 utf8 編碼最大字元長度為 3 位元組,如果遇到 4 位元組的寬字元就會插入異常了。三個位元組的 utf-8 最大能編碼的 unicode 字元是 0xffff,也就是 unicode 中的基本多文種平面( bmp )。也就是說,任何不在基本多文字平面的 unicode 字元,都無法使用 mysql 的 utf8 字符集儲存。包括 emoji 表情( emoji 是一種特殊的 unicode 編碼,常見於 ios 和 android 手機上),和很多不常用的漢字,以及任何新增的 unicode 字元等等。

SQL Server查詢資料庫表和資料庫字段

在sql server中查詢資料庫表和字段的方式可以有三種 方法一 查詢所有表 select from sys.tables 查詢所有列 select from sys.columns 查詢所有擴充套件屬性,我們在設計資料庫表和字段時寫的中文備註等資訊會儲存在這裡 select from sys.e...

資料庫分頁關鍵字

mysql分頁採用limt關鍵字 select from t order limit 5,10 返回第6 15行資料 select from t order limit 5 返回前5行 select from t order limit 0,5 返回前5行 mssql 2000分頁採用top關鍵字 ...

生成mysql資料庫字典 快速生成資料庫字典

select tablename case when c.column id 1 then o.name else n end tabledesc isnull case when c.column id 1 then ptb.value end,n column id c.column id,co...