将 UTF-8 编码的字符串插入 UTF-8 编码的 mysql 表失败​​,并显示“字符串值不正确”

2024-01-09

将 UTF-8 编码字符串插入 UTF-8 编码表会给出不正确的字符串值。

PDOException: SQLSTATE[HY000]: 一般错误: 1366 不正确的字符串值: '\xF0\x9D\x84\x8E i...' 对于第 1 行的列 'body_value': INSERT INTO

我有一个????字符,在一个字符串中mb_检测_编码 http://php.net/manual/en/function.mb-detect-encoding.php声明是 UTF-8 编码的。 我尝试将此字符串插入到 MySQL 表中,该表定义为(除其他外)DEFAULT CHARSET=utf8

Edit:Drupal 总是这样做SET NAMES utf8与可选的COLLATE(至少在与 MySQL 交谈时)。

Edit 2:一些似乎相关的更多细节。我从 PostgreSQL 数据库中获取一些文本。我将其粘贴到一个对象上,使用 mb_detect_encoding 来验证它是否为 UTF-8,并将该对象持久保存到数据库中,使用节点保存 http://api.drupal.org/api/drupal/modules!node!node.module/function/node_save/7。因此,虽然有触发导入的 HTTP 请求,但数据并非来自浏览器。

Edit 3:数据在两个表上进行非规范化:

从信息架构中选择字符集名称。COLUMNSC WHERE table_schema = "[database]" AND table_name IN ("field_data_body", "field_revision_body") AND column_name = "body_value";

>+--------------------+
| character_set_name |
+--------------------+
| utf8               |
| utf8               |
+--------------------+

Edit 4:这个角色有可能是“新人”吗?我有点模糊unicode和UTF-8的关系 https://stackoverflow.com/questions/643694/utf-8-vs-unicode, 但是这个维基百科文章 http://en.wikipedia.org/wiki/List_of_Unicode_characters#Musical_symbols,意味着该角色最近才被标准化。

我不明白为什么会因“字符串值不正确”而失败。


???? (U+1D10E) 是在 BMP(基本多语言平面)(U+FFFF 之上)之外找到的字符 Unicode,因此无法以 3 个字节的 UTF-8 表示。 MySQL 字符集 utf8 仅接受可以用 3 个字节表示的 UTF-8 字符。如果需要将其存储在 MySQL 中,则需要使用 MySQL 字符集 utf8mb4。您需要 MySQL 5.5.3 或更高版本。您可以使用 ALTER TABLE 更改字符集,没有太大问题;由于它需要更多空间来存储字符,因此会出现一些问题,可能需要您减小字符串大小。看http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-upgrading.html http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-upgrading.html .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 UTF-8 编码的字符串插入 UTF-8 编码的 mysql 表失败​​,并显示“字符串值不正确” 的相关文章

  • 比较两个表并找到匹配的列

    我有两个表 table1 和 table2 我需要编写一个选择查询 它将列出两个表中存在的列 mysql 我需要为不同的桌子做 一次2个 这可能吗 我尝试使用INFORMATION SCHEMA COLUMNS但我无法做对 SELECT a
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • 升级到 Yosemite 后 Apache 配置损坏

    昨天我升级到 Yosemite 现在我的 Web 开发本地配置不再起作用 我设法在下面设置了一个 userdir Users user public html我可以通过以下方式访问所有网站localhost user websitename
  • 在php中搜索字符串,搜索字段包含空格

    这是我的代码 div style display inline block div 我对空白有疑问 如果我仅使用 适合模型 或使用 11 2000 但不是两者组合 它会找到字符串 我需要将它们结合起来 否则就没用了 编辑 我不能做这样的事情
  • 表被指定两次作为 INSERT 的目标和单独的数据源

    我做了这个查询 但它给了我错误 就像标题中一样 INSERT INTO data waktu vaksinasi id binatang id vaksin tanggal vaksin status vaksin VALUES 1 1 S
  • 如何在我的网站上获取用户的国旗

    我想在我的网站上显示用户 访问者的国旗 我使用不同的技术 如 php jsp 和简单的 html 所以我想要一个代码 通过放置在我的网站上 访问者可以看到它 并且它应该在所有平台上运行 简而言之 我想要国家检测 API 如果有人能帮助我 我
  • 将歌词存储在 MySQL 数据库中

    我想知道在 mysql 数据库中存储音乐 歌词 的最佳方式是什么 以及用于此目的的设置是什么 另外 我想要表格来存储断线 我正在考虑使用 指示新行并使用 php 替换字符串 我不知道从哪里开始 或者使用什么参数 varchar int 我知
  • 在 .NET C# 项目中使用 PHP

    有谁知道是否可以 以及是否有任何复杂性 在 NET C 项目中使用 PHP 语言 我知道 VB 和 C 现在可以混合在解决方案中 所以我想知道 由于 IIS 现在能够运行 PHP 您是否可以将它们组合成一个单一的运行时 显然 提出这个问题的
  • 如何在drupal中获取内容类型的字段值

    如何获取自定义内容类型的字段值 我使用 CCK 模块创建了自定义内容类型 是否有任何函数可以获取特定内容类型的字段数组 例如 我可以使用 content profile load 函数获取个人资料详细信息 有没有类似这个的功能 如果您正在查
  • PHP 数字:小数点仅在需要时可见

    我想知道是否存在一些函数可以自动按十进制格式化数字 所以如果我有 所以我的答案是 如果我的数据库中有 DECIMAL 数据格式 仅当它
  • 如何从 foreach(PHP) 中只获取一个结果

    该代码循环一个数组并显示用户的所有视图 现在情况发生了变化 我只需要显示 foreach 循环的一个结果 我怎么做 table class report edits table thead tr class dates row td div
  • 如何在 Centos 7 上手动安装 PHP-Zts

    我想安装 pthreads 当我尝试安装时 我会收到此错误 checking for ZTS no configure error pthreads requires ZTS please re compile PHP with ZTS e
  • 使用 Facebook API 在朋友的墙上发布帖子

    我希望我的 Facebook 应用程序能够获取使用该应用程序的用户的 ID 并在他们的一位朋友的墙上找到该 ID 发布的帖子 我更喜欢使用个人 ID 的示例 而不是迭代所有朋友 我认为两个用户很可能都必须向应用程序提供权限才能执行此操作 这
  • 获取本周星期一和星期五的日期 (PHP)

    如何获取本周周一和周五的日期 我有以下代码 但如果当天是星期日或星期六 则会失败 current day date N days to friday 5 current day days from monday current day 1
  • 使用 mariaDB 将 sql 转储文件安装到 docker 容器

    我刚刚学习 docker 的基础知识 但一直停留在从本地系统导入 SQl 文件上 我使用的是 Windows 10 并允许我的 docker 容器访问我的共享驱动器 我有一个位于 D 上的 SQL 文件 我想导入到从 docker hub
  • WooCommerce - 谢谢和“我的帐户”查看订单页面上的自定义通知

    在 WooCommerce 上我有一个自定义字段days manufacture对于具有不同 整数 值的每个产品 我还有这个代码 可以在购物车页面上显示一条消息 其中的最高值是 生产天数 add action woocommerce bef
  • 安装失败:无法在 ubuntu 上的 WordPress nginx 中创建目录

    我在本教程的帮助下设置了 WordPress 如何在 ubuntu 18 04 上使用 LEMP 安装 WordPress https www digitalocean com community tutorials how to inst
  • 如何在 PHP 中去除字符串中的所有空格? [复制]

    这个问题在这里已经有答案了 我怎么能够strip remove all spaces of a string in PHP 我有一个string like string this is my string 输出应该是 thisismystr
  • 无法使用 javascript 建立与安全 Websocket 服务器的连接

    我的开发环境是这样的 操作系统 微软Windows 10 PHP 框架 Laravel 8 0 PHP 版本 7 4 Websocket 服务器 cboden ratchet 0 4 3 WAMP 服务器 3 2 0 Apache 2 4
  • 关于mysql建表的几个问题

    CREATE TABLE favorite food person id SMALLINT UNSIGNED food VARCHAR 20 CONSTRAINT pk favorite food PRIMARY KEY person id

随机推荐

  • Postgres 中整理的目的

    我是 Postgres 新手 我刚刚开始学习here http www w3resource com PostgreSQL pl pgsql declarations php 我从 select 语句中找到 COLLATE C SELECT
  • 从 Postman 生成 Azure 访问令牌

    我想从 Postman 生成 Azure 令牌 以便在我的项目中进行 API 授权 我可以使用下面的 API 请求生成令牌 但收到以下错误消息 此请求的授权被拒绝 在另一个 API 请求中使用生成的令牌时 端点 https login mi
  • 为什么字符串上的 + + 会产生奇怪的结果

    我正在努力使用 jQuery 动态附加元素 发现使用时 表明NaN并且不会添加下一个文本 我能以某种方式猜到 在这里作为算术加运算符并返回NaN 这不是增量运算符 因为两者之间有空格 我的问题是 这里实际发生了什么所以它返回NaN Why
  • sqlalchemy、postgresql 和关系陷入“事务中空闲”状态

    我有一个与 sqlalchemy 和 postgresql 相关的问题 class Profile Base roles relationship Role secondary role profiles backref profiles
  • 在 Windows 中检查端口可用性的 VBS 脚本

    我正在尝试检查某个软件的先决条件 我有一组脚本来检查并检查磁盘空间 内存可用性等内容 我需要创建一个脚本来检查某些端口是否打开且可访问 我正在使用 WMI 检查其他网络配置项 但找不到任何检查端口可用性的参考 任何人都知道我可以在哪里找到
  • 如何在正方形中显示图像的特定部分

    我在反应本机中的图像组件有问题 我想在某个正方形中显示图像的特定部分 F e 假设我的图像分辨率为 1280x720 private someImage require Assets someImage jpg 我想以方形组件显示此图像 大
  • 如果从电子邮件中单击链接,则引用 URL

    我有一个用户注册过程 其中我向用户发送一封电子邮件以进行电子邮件验证并激活他们的帐户 现在当activate link单击电子邮件中的链接后 如何获取引荐来源网址来告诉我用户是否通过单击电子邮件中的链接来到该页面 在生成电子邮件之前 您需要
  • 您可能需要一个适当的加载器来处理此文件类型上传图像文件

    我在react babel webpack 中使用图像文件 但它显示一个错误 ERROR in public assets scissors png Module parse failed home rohit Desktop game p
  • 如何强制 Maven 使用 maven-install-plugin 版本 2.5?

    我想使用 maven install plugin 将一些 jar 安装到我的本地 Maven 存储库中 我的maven 3 2 1安装使用这个插件的2 4版本 它需要指定很多参数 我想使用需要较少参数的 2 5 版本 如上所述http m
  • scala 中的 Hello World 有什么问题?

    我在学习scala来自 docs scala lang org 有一个example https docs scala lang org overviews scala book hello world 2 html object Hell
  • 一个月中的周数

    我有以下代码 NSDate dateNow NSDate alloc init NSTimeInterval timeDifference usersDate timeIntervalSinceDate dateNow Get the sy
  • Postgres 选择当前小时数据

    我有一个带有表 token 的 postgres 数据库 它有 token id 及其生成时间 token id generated time 196618 2016 10 15 01 02 48 963 196619 2016 10 15
  • PostgreSQL 9.4.2 中“CREATE TRIGGER”使用什么锁(如果有)

    根据Postgres XL http files postgres xl org documentation explicit locking html CREATE TRIGGER使用SHARE ROW EXCLUSIVE锁定 但根据Po
  • 数据表类型错误:c 未定义

    我尝试使用 jQuery DataTables 但出现错误 类型错误 c 未定义 我不知道我的代码有什么问题 因为我可以看到 JSON 正确检索并且格式也正确 但我不知道我收到上述错误有什么问题 我的 JSON Data LOGIN 101
  • 消除宝石错误

    我有使用 RVM 的 2 个版本的红宝石 我正在尝试删除此红宝石中的所有宝石version 1 8 7 p302 首先我尝试了这个 但出现错误 gem list cut d f1 xargs gem uninstall aIx Succes
  • airflow.exceptions.AirflowException:在 DAG 中检测到循环。任务错误

    我正在运行气流管道 但代码看起来不错 但实际上我收到了airflow exceptions AirflowException 在 DAG 中检测到循环 错误任务 你能帮忙解决这个问题吗 发生这种情况的原因是多个任务中有重复的 task id
  • C语言中如何将线程分配给不同的核心?

    我创建了一个程序 使用 4 个线程对 8 个数字进行加法 然后计算结果的乘积 如何确保每个线程使用单独的核心以获得最大性能提升 我是 pthreads 新手 所以我真的不知道如何正确使用它 请提供尽可能简单的答案 My code inclu
  • 如何获取我的表单父级窗口的当前标题?

    我有一个 WinForm 应用程序 它是其他进程 例如 Google Chrome 的 Windows 的父级 我使用以下代码将 Windows 设为我的表单的父级 使用返回的句柄 Process MainWindowHandle 我正在努
  • Winforms UI 单元测试

    我正在为我的用户控件编写一个测试用例 它将提示使用 MessageBox Show 进行用户操作 要求处理或取消操作 我如何设计我的单元测试来模仿用户交互以继续 我不想重构以将逻辑移至中间层 这是获得用户同意并继续进行中间层调用的简单案例
  • 将 UTF-8 编码的字符串插入 UTF-8 编码的 mysql 表失败​​,并显示“字符串值不正确”

    将 UTF 8 编码字符串插入 UTF 8 编码表会给出不正确的字符串值 PDOException SQLSTATE HY000 一般错误 1366 不正确的字符串值 xF0 x9D x84 x8E i 对于第 1 行的列 body val