【问题标题】:MySQL don't want to store unicode characterMySQL 不想存储 unicode 字符
【发布时间】:2011-02-11 03:22:47
【问题描述】:

为什么 MySQL 不存储 unicode 字符 ?????是的,它是一种罕见的象形文字,您不会在浏览器中看到它。
UTF16 是U+2B5EE

Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1

是否可以将这个字符存储在 MySQL 中?

【问题讨论】:

标签: mysql unicode utf8mb4


【解决方案1】:

自发布此问题以来,MySQL 5.5.3 已发布,它支持 utf8mb4 编码,提供完整的 Unicode 支持。切换到此字符集而不是 utf8 将解决您的问题。

我最近写了a detailed guide on how to switch from MySQL’s utf8 to utf8mb4。如果您按照那里的步骤操作,一切都应该正常工作。以下是流程中每个单独步骤的直接链接:

我怀疑您的问题可以通过执行第 5 步来解决。希望这会有所帮助!

【讨论】:

    【解决方案2】:

    首先:你的陈述

    UTF16 是 U+2B5EE

    有点不对。 U+2B5EE 是 Unicode codepoint 的符号,只是一个整数 - 一个抽象代码 - 而 UTF16 是一种字符集编码(可能的 Unicode 编码之一,UTF-8 也是如此)。

    现在,假设您的意思是代码点,U+2B5EE 在 BMP(前 64K Unicode 代码点)之外,并且似乎 mysql 有 little or no support for them。所以我怀疑你运气不好。

    【讨论】:

      【解决方案3】:

      MySQL 仅支持来自基本多语言平面 (0x0000 - 0xFFFF) 的字符。

      如果这架飞机你的角色不在。

      尝试存储同义词 :)

      更新:

      MySQL 5.5.3 及以上(尚未正式发布)如果您使用 UTF8MB4 encoding,则支持补充字符。

      【讨论】:

      • 在 MySQL 中遇到 utf8 的问题已经好几天了。现在我知道为什么了!谢谢!
      猜你喜欢
      • 2011-07-06
      • 2012-09-06
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 2018-06-26
      • 2018-05-02
      • 2022-12-01
      • 2010-11-14
      相关资源
      最近更新 更多