成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

MySQL utf8mb4字符集之表情包存儲(chǔ)/生僻詞存儲(chǔ)

社區(qū)管理員 / 1443人閱讀

針對(duì)MySQL數(shù)據(jù)庫(kù)業(yè)務(wù)生產(chǎn)環(huán)境中,經(jīng)常會(huì)有存儲(chǔ)表情包的場(chǎng)景,比如:用戶評(píng)論中的表情包數(shù)據(jù)。那么MySQL該如何存儲(chǔ)這些表情數(shù)據(jù)呢?

1、直接insert插入?

既然這篇文章能夠橫空出世,說(shuō)明直接insert是行不通的,不出意外的話,你會(huì)看到以下報(bào)錯(cuò):ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\xA4\xA4' for column 'content' at row 1

image.png

2、MySQL字符集utf8mb4

涉及到文字、字符、表情等字符的存儲(chǔ),肯定是離不開(kāi)MySQL對(duì)字符編碼的支持。utf8mb4就是支持表情包的字符集,而MySQL在5.5.3版本時(shí),就已經(jīng)實(shí)現(xiàn)了對(duì)utf8mb4字符集的支持。關(guān)于字符集的相關(guān)介紹,我這里就不再贅述了,詳情可以參考:MySQL字符集變量介紹。接下來(lái)我們直奔主題~

(1)修改MySQL配置文件

# 修改my.cnf配置文件
[mysqld]
character_set_server = utf8mb4
collation_server = utf8mb4_general_ci
init_connect = SET NAMES utf8mb4             # 用戶登錄到數(shù)據(jù)庫(kù)上之后,在執(zhí)行第一次查詢之前,執(zhí)行的內(nèi)容的
skip-character-set-client-handshake = 1      # 跳過(guò)mysql程序起動(dòng)時(shí)的字符參數(shù)設(shè)置 ,使用服務(wù)器端字符集設(shè)置

(2)修改存量表字符集

# 在線修改表字符集

alter table tb_name convert to character set utf8mb4;

3、表情包存儲(chǔ)測(cè)試

(1)準(zhǔn)備測(cè)試數(shù)據(jù)

create database starcto;

use starcto

CREATE TABLE my_comments (
        `bulletinId` bigint NOT NULL COMMENT '消息id',
        `content` varchar(256) NOT NULL COMMENT '內(nèi)容',
         PRIMARY KEY pk_my_comments(`bulletinId`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

# 插入帶有表情的測(cè)試數(shù)據(jù)
insert into my_comments (bulletinid,content) values (0, '謝謝,太好看了!!????');
insert into my_comments (bulletinid,content) values (1, '謝謝,太好看了?。????');

(2)查看插入的表情包數(shù)據(jù)

image.png

4、生僻字存儲(chǔ)測(cè)試

(1)報(bào)錯(cuò)復(fù)現(xiàn),準(zhǔn)備初始測(cè)試表

create database DB;

CREATE TABLE student
  (
     sno   INT,
     sname VARCHAR(32),
     ssex  VARCHAR(8) ,
     primary key (sno)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  # 初始指定默認(rèn)字符集utf8

# 插入生僻字:????????
insert into student values (1001,'????????','男');

image.png

(2)異常解決

#(1)查看表結(jié)構(gòu),發(fā)現(xiàn)student表默認(rèn)是utf8字符集
mysql> show create table student\G;
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `sno` int(11) NOT NULL,
  `sname` varchar(32) DEFAULT NULL,
  `ssex` varchar(8) DEFAULT NULL,
  PRIMARY KEY (`sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

#(2)修改表字符集
mysql> alter table student convert to character set utf8mb4;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

#(3)再次插入測(cè)試

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128105.html

相關(guān)文章

  • mysql/Java服務(wù)端對(duì)emoji的支持

    摘要:前言最近開(kāi)發(fā)的項(xiàng)目因?yàn)樾枰脩粑谋镜拇鎯?chǔ),自然就遇到了等表情符號(hào)如何被支持的問(wèn)題。問(wèn)題描述如果字符集且是服務(wù)器的話,當(dāng)存儲(chǔ)含有表情時(shí),會(huì)拋出類似如下異常這就是字符集不支持的異常。升級(jí)步驟的最低版本支持版本為,若不是,請(qǐng)升級(jí)到較新版本。 ? 前言: 最近開(kāi)發(fā)的iOS項(xiàng)目因?yàn)樾枰脩粑谋镜拇鎯?chǔ),自然就遇到了emoji等表情符號(hào)如何被mysql DB支持的問(wèn)題。困擾了數(shù)日,在就要絕望放棄...

    lncwwn 評(píng)論0 收藏0
  • Mysql支持emoji表情

    摘要:教程所示圖片使用的是倉(cāng)庫(kù)圖片,網(wǎng)速過(guò)慢的朋友請(qǐng)移步原文支持表情。因?yàn)樵u(píng)論里面有表情,所以需要數(shù)據(jù)庫(kù)支持編碼。摸索后發(fā)現(xiàn),需要更改的配置文件。在創(chuàng)建表格時(shí)候,設(shè)置字符集是,如下圖所示最后,各式各樣的表情就可以存儲(chǔ)在數(shù)據(jù)庫(kù)了 教程所示圖片使用的是 github 倉(cāng)庫(kù)圖片,網(wǎng)速過(guò)慢的朋友請(qǐng)移步>>> (原文)Mysql 支持 emoji 表情。 更多討論或者錯(cuò)誤提交,也請(qǐng)移步。 1. 前言 ...

    MiracleWong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<