1
sdjl OP 回复必感谢!( 24 小时内)
|
2
xiangyuecn 2018-12-07 19:26:25 +08:00 1
来了收割一波,不知道 mysql 有没有 n 打头的类型,nvarchar
|
3
baocaixiong 2018-12-07 19:30:48 +08:00 1
```
CREATE TABLE `test` ( `id` bigint(20) unsigned NOT NULL auto_increment, content varchar(300) default '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 collate=utf8mb4_general_ci; insert into test (content)values( "🎉"); ``` |
4
naic 2018-12-07 19:30:53 +08:00 1
![微信图片_20181207192915.png]( https://i.loli.net/2018/12/07/5c0a59d8b966f.png)
![微信图片_20181207192933.png]( https://i.loli.net/2018/12/07/5c0a59d94587f.png) 应该是可以的 |
5
naic 2018-12-07 19:32:10 +08:00 1
|
6
baocaixiong 2018-12-07 19:32:56 +08:00 1
@naic 直接贴图片地址,前后留空
|
7
naic 2018-12-07 19:34:26 +08:00 1
@baocaixiong 请不要在每一个回复中都包括外链,这看起来像是在 spamming
尴尬 |
8
sdjl OP @baocaixiong 我把你的代码复制过去也不行呢。
mysql> CREATE TABLE `test` ( -> `id` bigint(20) unsigned NOT NULL auto_increment, -> content varchar(300) default '', -> PRIMARY KEY (`id`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 collate=utf8mb4_general_ci; Query OK, 0 rows affected (0.01 sec) mysql> insert into test (content)values( "🎉"); ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\x8E\x89' for column 'content' at row 1 我的 MySQL 版本是: Server version: 5.7.24 MySQL Community Server (GPL) |
9
zeraba 2018-12-07 19:38:29 +08:00 via Android 2
你的客户端也需要用 mb4 字符集连接
|
10
andylsr 2018-12-07 19:39:52 +08:00 via Android 1
建表用 utf8mb4_unicode,客户端选一样的字符集即刻
|
13
fashy 2018-12-07 19:42:57 +08:00 1
show variables like '%character%';
看下数据库设置,服务器端的是否都已经设置了? |
15
zjp 2018-12-07 19:46:37 +08:00 1
|
17
zjp 2018-12-07 19:51:06 +08:00 1
@sdjl UTF8 是变长编码,占用更多磁盘空间只是之前 mb3 存不了 4 字节字符。不过会影响 MySQL 对最大字符数的计算
|
18
c00WKmdje2wZLrSI 2018-12-07 20:18:09 +08:00 1
![微信图片_20181207193139.png]( https://i.loli.net/2018/12/07/5c0a5a21a68e9.png)
|
19
88250 2018-12-07 21:07:17 +08:00 1
迁移历史数据可参考这里 https://hacpai.com/article/1521094110639
|
20
mmdsun 2018-12-07 21:14:15 +08:00 via Android 1
就是 MySQL UTF-8 的 bug。得用 utf8mb4
|
21
Livid MOD |
23
fanmouji 2018-12-07 23:09:42 +08:00 via Android 1
做过保存微信用户昵称,MySQL5.7+,如果是通过代码保存的话 utf-8 编码,数据库字段用 varchar
|
24
edsgerlin 2018-12-08 01:02:56 +08:00 2
如果有幸用 MySQL 8.0+的话,推荐用`utf8mb4_0900_ai_ci`,这个能支持 Unicode 9.0 新增的字符。
|
25
Techzero 2018-12-08 01:43:35 +08:00 via Android 1
关键词 utf8mb4
|
26
winglight2016 2018-12-08 09:22:25 +08:00 1
我就奇怪,表情这种设置服务端肯定没问题的,那就只剩客户端的问题了,lz 下次记得用排除法
|
27
echisan 2018-12-08 09:30:21 +08:00 via iPhone 1
学习了
|
28
leonard916 2018-12-08 12:20:40 +08:00 1
試試 UTF16
|
30
DRcoding 2018-12-08 17:26:32 +08:00 1
很久前遇到过,改字符集是简单省事,但是不至于为了存个 emoji 改字符集。。。前端转码,或者我看到 TX 某客户端的做法是整理搞了个 emoji 字符的对应关系,全部存成了对应或相近的图片。
|