首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQLUTF-8 有坑!

问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: MySQL的“utf8mb4”是真正的“UTF-8”。 MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

22540

MySQL 巨坑:永远不要在 MySQL 中使用 UTF-8!!

问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 那么什么是编码?什么是UTF-8?...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

8810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQLUTF-8 有坑!

    问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: MySQL的“utf8mb4”是真正的“UTF-8”。 MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    27440

    MySQL 巨坑:永远不要在 MySQL 中使用 UTF-8

    问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    52640

    切记 | 不要在MySQL中使用UTF-8

    问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。...MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,而今天使用的 UTF-8 标准(RFC 3629)是随后才出现的。...旧版的 UTF-8 标准(RFC 2279)最多支持每个字符 6 个字节。2002 年 3 月 28 日,MySQL 开发者在第一个 MySQL 4.1 预览版中使用了 RFC 2279。...同年 9 月,他们对 MySQL 源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。 是谁提交了这些代码?他为什么要这样做?这个问题不得而知。...在这个不合法的字符集发布了之后,MySQL 就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL 在 2010 年重新发布了“utf8mb4”来支持真正的 UTF-8

    61820

    记住:永远不要在 MySQL 中使用 UTF-8

    <…”也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    49110

    记住:永远不要在 MySQL 中使用 UTF-8

    问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。...MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,而今天使用的 UTF-8 标准(RFC 3629)是随后才出现的。...旧版的 UTF-8 标准(RFC 2279)最多支持每个字符 6 个字节。2002 年 3 月 28 日,MySQL 开发者在第一个 MySQL 4.1 预览版中使用了 RFC 2279。...同年 9 月,他们对 MySQL 源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。 是谁提交了这些代码?他为什么要这样做?这个问题不得而知。...在这个不合法的字符集发布了之后,MySQL 就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL 在 2010 年重新发布了“utf8mb4”来支持真正的 UTF-8

    38510

    记住:永远不要在 MySQL 中使用 UTF-8

    问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。...MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,而今天使用的 UTF-8 标准(RFC 3629)是随后才出现的。...旧版的 UTF-8 标准(RFC 2279)最多支持每个字符 6 个字节。2002 年 3 月 28 日,MySQL 开发者在第一个 MySQL 4.1 预览版中使用了 RFC 2279。...同年 9 月,他们对 MySQL 源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。 是谁提交了这些代码?他为什么要这样做?这个问题不得而知。...在这个不合法的字符集发布了之后,MySQL 就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL 在 2010 年重新发布了“utf8mb4”来支持真正的 UTF-8

    45530

    记住:永远不要在 MySQL 中使用 UTF-8

    问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    44140

    记住:永远不要在MySQL中使用UTF-8

    <…”也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    31231

    切记:永远不要在MySQL中使用UTF-8

    <…”也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    39220

    记住:永远不要在 MySQL 中使用 UTF-8

    问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    32620

    为什么不建议在MySQL中使用UTF-8

    也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    82820

    记住没:永远不要在 MySQL 中使用 UTF-8

    最终,MySQL 在 2010 年重新发布了“utf8mb4”来支持真正的 UTF-8。 所以结果就是没有赢家。...同年 9 月,他们对 MySQL 源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。 旧版的 UTF-8 标准(RFC 2279)最多支持每个字符 6 个字节。...MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,而今天使用的 UTF-8 标准(RFC 3629)是随后才出现的。 为什么 MySQL 开发者会让“utf8”失效?...MySQL 简史 MySQL 的“utf8”字符集与其他程序不兼容,它所谓的“”,可能真的是一坨…… UTF-8 可以节省空间,在 UTF-8 中,字符“C”只需要 8 位,一些不常用的字符,比如“”需要...“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。 问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8

    51120

    为什么不建议在MySQL中使用UTF-8

    也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。...简单概括如下: 1.MySQL的“utf8mb4”是真正的“UTF-8”。 2.MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。...MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 旧版的UTF-8标准(RFC 2279)最多支持每个字符6个字节。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8

    85530

    记住没:永远不要在 MySQL 中使用 UTF-8

    简介 MySQL 的“utf8”实际上不是真正的 UTF-8。“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。...简单概括如下: 1.MySQL 的“utf8mb4”是真正的“UTF-8”。 2.MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。...我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 那么什么是编码?什么是 UTF-8?...UTF-8 可以节省空间,在 UTF-8 中,字符“C”只需要 8 位,一些不常用的字符,比如“”需要 32 位。其他的字符可能使用 16 位或 24 位。...一篇类似本文这样的文章,如果使用 UTF-8 编码,占用的空间只有 UTF-32 的四分之一左右。

    28150

    为什么不建议在 MySQL 中使用 UTF-8

    MySQL中,“utf8”编码只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。 在utf8编码中,中文是占3个字节,其他数字、英文、符号占一个字节。...我们或许可以从MySQL版本提交日志中寻找答案。 MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,而今天使用的 UTF-8 标准(RFC 3629)是随后才出现的。...旧版的 UTF-8 标准(RFC 2279)最多支持每个字符 6 个字节。2002 年 3 月 28 日,MySQL 开发者在第一个 MySQL 4.1 预览版中使用了 RFC 2279。...同年 9 月,他们对 MySQL 源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。 是谁提交了这些代码?他为什么要这样做?这个问题不得而知。...在这个不合法的字符集发布了之后,MySQL 就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL 在 2010 年重新发布了“utf8mb4”来支持真正的 UTF-8

    71110
    领券