【问题标题】:Invalid unicode character causing MySQL string error导致 MySQL 字符串错误的无效 unicode 字符
【发布时间】:2019-05-13 10:06:13
【问题描述】:

我需要向我们的 MySQL 数据库(通过 Omeka)添加一条包含无效 unicode 字符 (this one) 的记录

我通过 Omeka 收到的错误消息是:

Mysqli statement execute error : Incorrect string value: '\xF0\xAA\xA8\xA7\xE7\x94...' for column 'text' at row 1

数据库字段是带有排序规则 utf8_unicode_ci 的长文本。该表中已经有很多记录,我不太确定应该更改什么而不影响其中已有的其他数据。有什么建议吗?

【问题讨论】:

  • 我很困惑如何定义一个字符,但无效......
  • 您是否使用准备好的语句来插入此值而不是一些字符串连接?一些汉字需要utf8mb4。 utf8 只是 3 个字符的版本。
  • 我正在使用 Omeka;它是 php 中的标准 webapp,用于插入值。

标签: mysql unicode chinese-locale


【解决方案1】:

ALTER TABLE tbl 转换为 utf8mb4;

同时,该列中该行的文本可能被截断或整行丢失。

据我所知,F0AAA8A7 还没有分配,但我认为是在汉字领域,不是 Emoji,也需要 utf8mb4。它是 Unicode“代码点”2AA27。

【讨论】:

  • 对,就是这个汉字:fileformat.info/info/unicode/char/2aa27/index.htm。这些天我通过 phpMyAdmin 进行了大多数 MySQL 更改,所以我可以通过这种方式更改为 utf8mb4 (utf8mb4_unicode_ci)。我备份后试试看。
  • @Another_Omeka_User - 啊哈。 Firefox 可以渲染它;铬不能。 fileformat.info 使用图像; Scarfboy.com (unicode.scarfboy.com/?s=%F0%AA%A8%A7) 希望字体负责渲染。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2012-02-07
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多