mysql utf8_general_ci 不支持哪些字符
时间: 2023-08-15 19:08:05 浏览: 116
MySQL的utf8_general_ci字符集并不支持一些特殊字符,包括一些辅助字符和某些表情符号。具体不支持的字符包括但不限于以下几类:
1. 一些特殊字符,如箭头符号、乘法符号、除法符号等。
2. 部分表情符号,如emoji表情符号。
3. 一些辅助字符,如特殊符号、数学符号、货币符号等。
为了支持更广泛的字符范围,可以考虑使用MySQL的utf8mb4字符集,它支持存储更多的Unicode字符,包括emoji等特殊字符。在创建数据库或表时指定字符集为utf8mb4即可。需要注意的是,utf8mb4字符集占用的存储空间会比utf8字符集稍大。
示例创建表时使用utf8mb4字符集:
```sql
CREATE TABLE my_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
通过使用utf8mb4字符集,可以更好地支持各种语言和特殊字符,确保数据存储的完整性。
相关问题
mysql字符序utf8mb4_general_ci、utf8mb4_bin、binary、gbk_chinese_ci、gbk_bin、utf16_general_ci、utf16_bin、utf8mb4_unicode_ci、utf16_unicode_ci、gb18030_chinese_ci,这些命名规则是怎样的,代表什么意思,postgresql的字符序和mysql字符序的区别
MySQL字符序的命名规则是由多个部分组成的,具体如下:
- 字符集编码:utf8mb4、gbk、utf16、gb18030等。
- 排序规则:general_ci、bin、chinese_ci等。
其中,字符集编码表示使用的字符集类型,而排序规则表示字符比较和排序的规则。下面是对MySQL字符序的一些常见命名规则的解释:
- utf8mb4_general_ci:使用UTF-8编码,通用的不区分大小写的排序规则。
- utf8mb4_bin:使用UTF-8编码,二进制排序规则,按照字节顺序进行比较。
- gbk_chinese_ci:使用GBK编码,中文排序规则,不区分大小写。
- gbk_bin:使用GBK编码,二进制排序规则。
- utf16_general_ci:使用UTF-16编码,通用的不区分大小写的排序规则。
- utf16_bin:使用UTF-16编码,二进制排序规则。
PostgreSQL的字符序命名规则与MySQL略有不同。PostgreSQL使用LC_COLLATE和LC_CTYPE两个参数来定义字符排序和字符分类的规则。它具有更灵活的命名规则和更丰富的排序选项。与MySQL相比,PostgreSQL的字符序命名更加直观,并且提供了更多的可定制性。
总体上,PostgreSQL相对于MySQL在字符排序和字符分类方面提供了更多的灵活性和可配置性,可以更精确地满足不同语言和地区的排序需求。
mysql 中 utf8mb4_general_ci 与utf8_general_ci 区别
在MySQL中,utf8和utf8mb4都是用于存储Unicode字符集的编码。utf8编码最多支持3个字节,而utf8mb4则支持4个字节,这意味着utf8mb4可以存储更多的Unicode字符。具体来说,utf8mb4可以存储的字符包括了emoji表情等一些特殊字符,而utf8则不能。
在排序及比较方面,utf8mb4_general_ci与utf8_general_ci是两种不同的排序规则。utf8_general_ci是基于Unicode字符集的一种排序规则,它会先将字符进行规范化,再进行比较。utf8_general_ci不区分大小写,也不区分重音符号。而utf8mb4_general_ci则是专门用于utf8mb4编码的一种排序规则。与utf8_general_ci不同,utf8mb4_general_ci会将字符根据它们的Unicode编码进行比较,这意味着它会区分大小写和重音符号。如果您需要使用emoji表情或其他特殊字符,则应该使用utf8mb4编码,并选择utf8mb4_general_ci排序规则。
阅读全文