utf8 订阅
UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。 [1] 展开全文
UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。 [1]
信息
作    者
Ken Thompson
创建时间
1992年
定    义
针对Unicode的可变长度字符编码
所属领域
计算机科学技术
中文名
UTF-8
外文名
8-bit Unicode Transformation Format
UTF-8发展历程
在所有字符集中,最知名的可能要数被称为ASCII的8位字符集了。它是美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。但是,由于它是针对英语设计的,当处理带有音调标号(形如汉语的拼音)的亚洲文字时就会出现问题。因此,创建出了一些包括256个字符的由ASCII扩展的字符集。其中有一种通常被称为IBM字符集,它把值为128-255之间的字符用于画图和画线,以及一些特殊的欧洲字符。另一种8位字符集是ISO 8859-1Latin 1,也简称为ISOLatin-1。它把位于128-255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。欧洲语言不是地球上的唯一语言,因此亚洲和非洲语言并不能被8位字符集所支持。仅汉语字母表(或pictograms)就有80000以上个字符。但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国表音文字)。但是,UNICODE并没有提供对诸如Braille(盲文),Cherokee, Ethiopic(埃塞俄比亚语), Khmer(高棉语), Mongolian(蒙古语), Hmong(苗语), Tai Lu, Tai Mau文字的支持。同时它也不支持如Ahom(阿霍姆语), Akkadian(阿卡德语), Aramaic(阿拉米语), Babylonian Cuneiform(古巴比伦楔形文字), Balti(巴尔蒂语), Brahmi(婆罗米文), Etruscan(伊特拉斯坎语), Hittite(赫梯语/西台语), Javanese(爪哇语),Numidian(努米底亚语), Old Persian Cuneiform(古波斯楔形文字),Syrian(叙利亚语)之类的古老文字。事实证明,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Unicode Transformation Format)。常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。 [2] 
收起全文
精华内容
下载资源
问答
  • 图解unicode、utf8utf8mb4

    万次阅读 2021-02-26 17:54:03
    字符集和字符编码 字符集(CCS: Coded Character Set): 就是一个表格,表示每个字符对应数字(通常用16进制表示),比如unicode字符集中,数字1...对于unicode字符,utf8就是它的编码方案(如何utf8转换成01表示下.

    字符集发展

    字符集和字符编码

    字符集(CCS: Coded Character Set):

    就是一个表格,表示每个字符对应数字(通常用16进制表示),比如unicode字符集中,数字1对应的就是U+00031,字母a对应的就是U+00061

    在这里插入图片描述

    字符编码(CEF:Character Encoding Form):

    因为计算机只认识01,所以计算机在存储字母aU+00031)的时候,不能直接存储。所以就需要编码将字母a转换成01表示形式。对于unicode字符,utf8就是它的编码方案(如何utf8转换成01表示下文介绍)。

    字符:

    字符简单理解就是人类能(容易)看懂得符号。

    比如对于汉字,机器存储的是11100100 10111000 10100101,人类根本看不懂。转换成unicode表示方法是U+4E25,依然看不懂。

    人类只能看懂这个字符,三者之间的关系如下:
    在这里插入图片描述

    字符串到保存文件过程如下:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Smo4ICe-1614333267514)(%E5%BD%BB%E5%BA%95%E6%90%9E%E6%B8%85unicode%E3%80%81utf8%E5%92%8Cutf8mb4%20ccefc7a932a14295b1f28eac20ef1733/Untitled%203.png)]

    UTF-8编码

    这个字的unicode码是U+4E25(对应的二进制数字是100111000100101),而utf8编码之后是11100100 10111000 10100101,是不是很奇怪?两个二进制完全不一样,是因为utf8有一套编码规则。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yU0gpEb-1614333267515)(%E5%BD%BB%E5%BA%95%E6%90%9E%E6%B8%85unicode%E3%80%81utf8%E5%92%8Cutf8mb4%20ccefc7a932a14295b1f28eac20ef1733/Untitled%204.png)]

    UTF-8编码规则

    utf8 最大的一个特点,就是它是一种可变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

    utf8 的编码规则很简单,只有二条:

    • 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,utf8 编码和 ASCII 码是相同的。
    • 对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

    下表总结了编码规则,字母x表示可用编码的位。

    Unicode符号范围      |        UTF-8编码方式
      (十六进制)         |         (二进制)
    --------------------+---------------------------------------------
    0000 0000-0000 007F | 0xxxxxxx
    0000 0080-0000 07FF | 110xxxxx 10xxxxxx
    0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
    0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    

    字的Unicode编码是4E25处于0000 0800 - 0000 FFFF这个范围里面,所以需要三个字节表示。

    哇塞,原来是这样

    utf8和utf8mb4

    utf8mb4只是mysql特有的概念,原因是mysql5.5.3之前,Unicode收录的字符还不是很多,(最大)3个字节足够存储,所以那时的mysqlutf8(alias of “utf8mb3”)存储也设计为3字节存储。后来Unicode收录的字符更多了,扩张到4字节了(比如表情😁)。

    MySQL也在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的Unicode

    MySQL官方网站也解释了utf8mb3utf8mb4之间的关系。https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html

    https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html

    总结

    • Unicode是字符集,是符合和码点的映射表
    • utf8Unicode的一种最常见的字符编码方式(还有utf16utf32
    • mysqlutf8实际上是utf8mb3(最大存储3字节),utf8mb4最大可以存储4字节(大部分表情都要占用4字节,所以需要选择utf8mb4
    展开全文
  • utf8mb4 已成为 MySQL 8.0 的默认字符集,在MySQL 8.0.1及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。 新项目只考虑 utf8mb4 UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。 因为历史遗留问题...

    参考:mysql字符集小结

    utf8mb4 已成为 MySQL 8.0 的默认字符集,在MySQL 8.0.1及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。

    新项目只考虑 utf8mb4

    UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。

    因为历史遗留问题,MySQL 中的 utf8 编码并不是真正的 UTF-8,而是阉割版的,最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 字符或者复杂的汉字,会导致存储异常。

    从 5.5.3 开始,MySQL 开始用 utf8mb4 编码来实现完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4个字节。从 8.0 之后,将会在某个版本开始用 utf8mb4 作为默认字符编码。

    设置服务器默认字符集为 utf8mb4

    创建数据库时,如果没有指定字符集,会采用服务器的默认字符集。设置服务器默认字符集为 utf8mb4 可以提高便利性。

    编辑 MySQL 的配置文件

    只需要关心5个系统变量,这5个都改为 utf8mb4 则修改成功:
    character_set_client
    character_set_connection
    character_set_results
    character_set_server
    character_set_database

    my.cnf 是MySQL 的配置文件,修改之前记得先备份:

    vi /etc/my.cnf
    
    在[mysqld]下面加上default-character-set=utf8后服务器启动不了,莫名其妙。后来这么改就好了(MySQL5.7):
    [mysqld]
    init_connect='SET collation_connection = utf8mb4_unicode_ci' 
    init_connect='SET NAMES utf8mb4' 
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci 
    skip-character-set-client-handshake
    ...
    [client]
    default-character-set=utf8mb4
    
    MySQL8.0 默认已经是 utf8mb4,不用改懂。如果你要改的话,配置文件如下:
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    character-set-server = utf8mb4
    
    [client]
    default-character-set=utf8mb4
    

    重启并确认

    可以看到,系统编码、连接编码、服务器和客户端编码都设置为 UTF-8了:

    mysql> show variables like "%char%";
    +--------------------------------------+--------------------------------+
    | Variable_name                        | Value                          |
    +--------------------------------------+--------------------------------+
    | character_set_client                 | utf8mb4                        |
    | character_set_connection             | utf8mb4                        |
    | character_set_database               | utf8mb4                        |
    | character_set_filesystem             | binary                         |
    | character_set_results                | utf8mb4                        |
    | character_set_server                 | utf8mb4                        |
    | character_set_system                 | utf8                           |
    | character_sets_dir                   | /usr/share/mysql-8.0/charsets/ |
    | validate_password.special_char_count | 1                              |
    +--------------------------------------+--------------------------------+
    9 rows in set (0.00 sec)
    

    MySQL 中字符集相关变量

    character_set_client:客户端请求数据的字符集
    character_set_connection:从客户端接收到数据,然后传输的字符集
    character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server指定的字符集,这个变量建议由系统自己管理,不要人为定义。
    character_set_filesystem:把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的
    character_set_results:结果集的字符集
    character_set_server:数据库服务器的默认字符集
    character_set_system:存储系统元数据的字符集,总是 utf8,不需要设置

    创建数据库时指定字符集为 utf8mb4

    如果数据库默认字符集不是 utf8mb4,那么可以在创建数据库时指定字符集:

    CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    排序字符集 collation

    字符除了需要存储,还需要排序或比较大小。推荐用 utf8mb4_unicode_ci,但是用 utf8mb4_general_ci 也没啥问题。

    MySQL 8.0 默认的是 utf8mb4_0900_ai_ci,属于 utf8mb4_unicode_ci 中的一种,具体含义如下:

    • uft8mb4 表示用 UTF-8 编码方案,每个字符最多占4个字节。
    • 0900 指的是 Unicode 校对算法版本。(Unicode归类算法是用于比较符合Unicode标准要求的两个Unicode字符串的方法)。
    • ai指的是口音不敏感。也就是说,排序时e,è,é,ê和ë之间没有区别。
    • ci表示不区分大小写。也就是说,排序时p和P之间没有区别。

    utf8mb4 已成为默认字符集,在MySQL 8.0.1及更高版本中将utf8mb4_0900_ai_ci作为默认排序规则。以前,utf8mb4_general_ci是默认排序规则。由于utf8mb4_0900_ai_ci排序规则现在是默认排序规则,因此默认情况下新表格可以存储基本多语言平面之外的字符。现在可以默认存储表情符号。如果需要重音灵敏度和区分大小写,则可以使用utf8mb4_0900_as_cs代替。

    展开全文
  • utf8utf8mb4区别

    千次阅读 2018-12-18 09:37:11
    好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,一般情况下使用utf8也就够了。 二、内容描述  那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来utf-8编...

    一、简介

       MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,一般情况下使用utf8也就够了。

    二、内容描述

       那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。也就是说直接往采用utf-8编码的数据库中插入表情数据和很多不常用的汉字,以及任何新增的 Unicode 字符等等数据库都将会报错。

    三、问题根源及解决

            理论上讲, UTF-8 格式使用一至六个字节,最大能编码 31 位字符。最新的 UTF-8 规范只使用一到四个字节,最大能编码21位,正好能够表示所有的 17个 Unicode 平面。关于UTF编码,请阅读《常见编码总结》一文。而utf8 则是 Mysql 早期版本中支持的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面。这可能是因为在MySQL发布初期,基本多文种平面之外的字符确实很少用到。而在MySQL5.5.3版本后,要在 Mysql 中保存 4 字节长度的 UTF-8 字符,就可以使用 utf8mb4 字符集了。例如可以用utf8mb4字符编码直接存储emoj表情,而不是存表情的替换字符。

    为了获取更好的兼容性,应该总是使用 utf8mb4 而非 utf8,事实上,最新版的phpmyadmin默认字符集就是utf8mb4。诚然,对于 CHAR 类型数据,使用utf8mb4 存储会多消耗一些空间。根据 Mysql 官方建议,使用 VARCHAR  替代 CHAR。

    展开全文
  • MySQL中 utf8utf8mb4区别

    千次阅读 2019-08-08 19:52:52
    utf8utf8mb4区别

    'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. 

    “utf8”目前是字符集utf8mb3的别名,但在将来的版本中将是utf8mb4的别名。请考虑使用utf8mb4,以便明确。


    一、简介

    MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,一般情况下使用utf8也就够了。


    二、内容描述

    那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。也就是说直接往采用utf-8编码的数据库中插入表情数据和很多不常用的汉字,以及任何新增的 Unicode 字符等等数据库都将会报错。


    三、问题根源及解决

    理论上讲, UTF-8 格式使用一至六个字节,最大能编码 31 位字符。最新的 UTF-8 规范只使用一到四个字节,最大能编码21位,正好能够表示所有的 17个 Unicode 平面。关于UTF编码,请阅读《常见编码总结》一文。而utf8 则是 Mysql 早期版本中支持的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面。这可能是因为在MySQL发布初期,基本多文种平面之外的字符确实很少用到。而在MySQL5.5.3版本后,要在 Mysql 中保存 4 字节长度的 UTF-8 字符,就可以使用 utf8mb4 字符集了。例如可以用utf8mb4字符编码直接存储emoj表情,而不是存表情的替换字符。

    为了获取更好的兼容性,应该总是使用 utf8mb4 而非 utf8,事实上,最新版的phpmyadmin默认字符集就是utf8mb4。诚然,对于 CHAR 类型数据,使用utf8mb4 存储会多消耗一些空间。根据 Mysql 官方建议,使用 VARCHAR  替代 CHAR。

    drop table if exists cst_customer;
    /*创建客户表*/
    CREATE TABLE cst_customer (
      cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
      cust_name varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
      cust_source varchar(32) DEFAULT NULL COMMENT '客户信息来源',
      cust_industry varchar(32) DEFAULT NULL COMMENT '客户所属行业',
      cust_level varchar(32) DEFAULT NULL COMMENT '客户级别',
      cust_address varchar(128) DEFAULT NULL COMMENT '客户联系地址',
      cust_phone varchar(64) DEFAULT NULL COMMENT '客户联系电话',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    
    drop table if exists cst_customer;
    /*创建客户表*/
    CREATE TABLE cst_customer (
      cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
      cust_name varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
      cust_source varchar(32) DEFAULT NULL COMMENT '客户信息来源',
      cust_industry varchar(32) DEFAULT NULL COMMENT '客户所属行业',
      cust_level varchar(32) DEFAULT NULL COMMENT '客户级别',
      cust_address varchar(128) DEFAULT NULL COMMENT '客户联系地址',
      cust_phone varchar(64) DEFAULT NULL COMMENT '客户联系电话',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8MB4;

     


    四、mysql connector版本低于5.1.13 报错

    org.springframework.jdbc.CannotGetJdbcConnectionException: 
    Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: 
    Cannot create PoolableConnectionFactory (Unknown initial character set index '224' received from server.
    Initial client character set can be forced via the 'characterEncoding' property.)

    展开全文
  • MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf...
  • mysql字符集 utf8utf8mb4 的区别

    万次阅读 多人点赞 2019-05-09 10:53:26
    我们新建mysql数据库的时候,需要指定数据库的字符集,一般我们都是选择utf8这个字符集,但是还会又一个utf8mb4这个字符集,好像和utf8有联系,今天就来解析一下这两者的区别。 二、起源 MySQL在5.5.3之后增加了这个...
  • UTF8、UTF16、UTF32区别

    千次阅读 2019-04-10 22:19:30
    UTF8、UTF16、UTF32区别
  • utf8utf8mb4的区分

    千次阅读 2019-03-17 20:58:05
    好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。 (2)内容描述: 那上面说了既然utf8能够存下大部分中文汉字,那为什么还要...
  • mysql的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本...
  • 众所周知,utf-8 每个字符最多支持四个字节, 而utf8每个字符最多只支持3个字节。这是mysql的一个bug,或者说是一个失误,因为mydql做过代码迁移,已经无法找到这个bug的提交记录。在2010年发布一个叫做“utf8mb4”...
  • 在mysql官网翻阅到,未来可能删除utf8mb3(utf8目前是别名utf8mb3)推荐使用utf8mb4。于是正在使用utf8的数据库以及表转化utf8mb4。 下面介绍方法 1.修改数据库命令 ALTER DATABASE 数据库名称DEFAULT CHARACTER...
  • utf8utf8mb4的区别

    千次阅读 2018-05-09 17:28:41
    一、简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般...
  • utf8mb4与utf8的区别

    万次阅读 2017-04-25 14:23:24
    浅谈utf8mb4与utf8的区别
  • MySQL中utf8utf8mb4的区别

    万次阅读 2019-06-06 17:06:01
    设计数据库时,对于字符类型数据设计时,因为使用的是Navicat软件进行建表,经常默认的字符集是utf8md4,于是就去查了查utf8utf8mb4的区别。 对于这两种编码,区别在于:       &...
  • 更改数据库utf8utf8mb4

    千次阅读 2018-11-21 13:18:33
    utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常: java.sql....
  • utf8与utf16转换

    千次阅读 2019-03-14 23:18:59
    1.UTF8与UTF16编码转换 std::string ConvertFromUtf16ToUtf8(const std::wstring& wstr) { std::string convertedString; int requiredSize = WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, 0, 0, 0...
  • MySQL数据库字符集utf8如何转utf8mb4

    万次阅读 2019-05-07 17:08:48
    这几天开发的项目需要把Emoji 表情保存到数据库,原来的Mysql数据库的编码是utf8的,这就导致保存的时候报如下错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x95\xF0\x9F...' for column...
  • utf-8 和 utf8 有什么区别

    千次阅读 2018-02-05 14:19:49
    一般程序都能识别,但也有例外,在数据库中只能使用"utf8"(MySQL) 在MySQL的命令模式中只能使用"utf8",不能使用"utf-8",为了严格一点,最好用标准的大写"UTF-8"。 总结:【只有在MySQL中可
  • 官方文档:MySQL 8.0 Reference Manual: 10.9.2 The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding) 首先,上结论: 国际上的UTF-8,在MySQL中,对标的是uft8mb4。 在MySQL中,实际只有utf8mb4和utf8mb3...
  • mysql中utf8utf8mb4区别

    千次阅读 2016-08-03 15:34:33
    好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。 二、内容描述 那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来...
  • AL32UTF8UTF8字符集

    千次阅读 2016-08-23 21:48:44
    客户的环境需要使用UTF8字符集,那么是使用AL32UTF8还是直接使用UTF8,这是一个问题。 Oracle的UTF8字符集由来已久,至少在8的时候就已经存在了,而对应的是UNICODE 3.0。而AL32UTF8字符集是9i才出现的,其对应的是...
  • 源库是UTF8字符集,目的库是AL32UTF8字符集,由于汉字在AL32UTF8 中占3个字节,而在ZHS16GBK中占2个字节, 这样在导入的时候就会遇到: 今天测试的是将AL32UTF8 转换成UTF8字符集 测试环境 系统:Windows 数据库:...
  • lua中怎么从utf16转到utf8 ? 从网上找到个js的实现方法,但是不知道参数是什么, ``` function utf16ToUtf8(s){ if(!s){ return; } var i, code, ret = [], len = s.length; for(i = 0; i ; i++){ ...
  • CHARACTER SET utf8 COLLATE utf8_general_ci

    万次阅读 2017-09-26 15:14:10
    老师在建一个表的时候对一个字段设置了CHARACTER SET utf8 COLLATE utf8_general_ci,不是第一张表而且感觉建数据库的时候也已经设了字符集编码,所以查资料了解了一下这样做的原因,虽然具体不是太清楚,但对...
  • mysql使用utf8mb4经验吐血总结

    万次阅读 多人点赞 2019-09-26 15:09:02
    mysql使用utf8mb4经验吐血总结 1. utf8utf8mb4 异同 先看 官方手册 https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html 的说明: The character set named utf8 uses a maximum of three ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717,445
精华内容 286,978
关键字:

utf8