node.js/MySQL:当我尝试插入数据库时​​,某些字符串编码(表情符号)抛出错误

2024-04-02

我正在运行一个 node.js 脚本,该脚本从公共“数据库”(它是一个“区块链”)中提取数据,然后对其执行一些操作,然后将其插入到 MySQL 数据库中。我已经使用 MySQL 数据库UTF8_general_ci编码。绝大多数数据都可以很好地解析,但有时它会遇到无法插入的内容。我收到此错误:

code: 'ER_TRUNCATED_WRONG_VALUE_FOR_FIELD',
  errno: 1366,
  sqlMessage: 'Incorrect string value: \'\\xF0\\x9F\\x8D\\x95 N...\' for column \'body\' at row 1',
  sqlState: 'HY000',
  index: 0,

它显示了似乎导致错误的字符串位,并且它始终具有这个独特的问号字符:

This looks like Paradise for me! ����\

我猜这是一个编码问题?有没有办法可以在抛出错误之前转换它们?我不确定这个区块链使用什么编码,我什至不知道如何找到答案。

编辑:这是该区块链的网络界面上显示的另一个示例(错误):

非常欢迎您!????????????????????????

另一个编辑:我应该指出我正在使用mysql.format(sql, inserts)处理数据的无意 SQL 问题 -https://github.com/mysqljs/mysql#preparing-queries https://github.com/mysqljs/mysql#preparing-queries


可能的答案是MySQL连接没有指定utf8mb4。 (具体来说,MySQL 的utf8 will notEmoji 就足够了。)您能提供连接代码吗?这是一个后备方案:连接到 MySQL 后执行此操作:

SET NAMES utf8mb4

另一个可能的答案是网络服务器没有将该页面视为UTF-8。解决这个问题的一种方法是在<head>:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

并且该列需要是CHARACTER SET utf8mb4, not ut8.

Node.js 连接池

var connection = mysql.createConnection({ ... , charset : 'utf8mb4'});

See 堆栈溢出 https://stackoverflow.com/questions/36280148/emoji-are-not-inserting-in-database-node-js-mysql

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

node.js/MySQL:当我尝试插入数据库时​​,某些字符串编码(表情符号)抛出错误 的相关文章

随机推荐

  • Windows服务之间如何通信

    我有 2 个使用 C 创建的 Windows 服务 我希望其中一个服务调用第二个 Windows 服务中的函数 我该怎么做呢 EDIT 问题是我必须运行该应用程序 我不需要它们 相反服务进程也很好 但我need这2个应用程序进行通信 这2个
  • 获取 $http 调用的完整调用堆栈跟踪

    假设有人在名为的文件中编写了这样的方法app js尝试对不存在的 url 执行 XHR 请求 app controller MainCtrl function scope http scope send function http get
  • 如何从 Android 中的 Fragment 调用 ArrayAdapter 构造函数

    我正在尝试将两列 ListView 添加到我的 Android 应用程序中 当我创建项目时 我选择了选项 片段 它通过向左和向右滑动来创建漂亮的导航 所以我的MainActivity延伸FragmentActivity 我的问题是 当我尝试
  • 找不到绳线(-bash:绳线:找不到命令)

    我正在尝试使用 twine 在 pypi 上发布我的第一个 python 包 当然会首先添加 test pypi 我遵循了官方指南https packaging python org tutorials packaging projects
  • Freemarker:从模板文件 (*.ftl) 调用静态 util 方法

    在 Freemarker FTL 文件中 我想调用StringUtils capatilize myString 例如 p You selected selectionString p p StringUtils capatilize se
  • 绘制圆形渐变

    我想绘制一个圆形渐变 如下图所示 我可以轻松管理径向渐变 但我不知道如何做圆形渐变 我正在考虑在一条线上绘制渐变 然后将其转换为圆形 这可能吗 这就是我绘制径向渐变的方法 CGFloat a MIN self frame size widt
  • 使用 codeigniter 403 的 Ajax 请求(禁止)

    我正在尝试使用 Ajax 向 Codeigniter 中的控制器文件发送一个值 但没有成功 我已经搜索过这个问题 现在这个问题在这里被提出了很多次 但仍然找不到解决方案 希望任何人都可以帮助我 谢谢 Js file function sub
  • 在堆栈上为 execve 创建一个 arg 数组

    我想编写一个汇编程序 通过 EXECVE 系统调用 0x3C 使用开关 al 执行程序 bin ls 手册页 man 2 execve 指出该调用需要三个值 int execve const char filename char const
  • 通过 http 拉取大型存储库(大小超过 1GB)失败

    存储库的大小超过 1GB 当我拉到 50 时 出现错误 gt remote Counting objects 23891 done remote Compressing objects gt 100 19980 19980 done fat
  • 如何仅在 log4j 中记录警告

    在 Struts 2 应用程序中 我们使用 log4j 进行日志记录 我只想记录警告 但是当我尝试在 log4j properties 中使用时 log4j rootLogger warn stdout 它也打印错误和致命日志 我只想要警告
  • 如何在 Visual Basic .NET 中从 Internet“读取”XML?

    因此 我正在 Visual Basic 2010 中创建一个程序 它将处理来自 Internet 的大约 120 万个 XML 文件 每个文件的 URL 格式如下 website com xmlfeed action number VARI
  • 从 Android Wear 上的日历获取数据

    我正在查询这样的日历数据 Constructor of the class mCursor context getContentResolver query CalendarContract Events CONTENT URI mColu
  • Axios 未传递 Content-Type 标头

    我在后端运行一个 Odoo 实例 并创建了一个公开 Web 控制器的自定义模块 如下所示 网页控制器 coding utf 8 from odoo import http import odoo from odoo http import
  • Linux/Unix 中是否有与 futex 等效的东西?

    我正在寻找可以用来做的东西polling like select kqueue epoll即不忙轮询 在 C C 中 换句话说 我需要阻塞一个线程 然后在另一个线程中唤醒它尽可能少的开销 A mutex condition variable
  • iOS Playground 中的 NSUserDefaults

    iOS Playgrounds 似乎有一个奇怪的问题NSUserDefaults总是返回nil而不是实际值 在 iOS Playground 中 最后一行错误地返回nil import UIKit let defaults NSUserDe
  • 如何升级现有的 Flutter 应用?

    我有一个半年前构建的现有 Flutter 应用程序 我查了一下pubspec lock 它有这一行 sdks dart gt 2 10 0 110 lt 2 11 0 flutter gt 1 16 0 lt 2 0 0 所以我假设该应用程
  • sql server中事务回滚的机制是什么?

    sql server中事务回滚的机制是什么 数据库中的每个更新都会首先将一个条目写入包含更改描述的日志中 例如 如果您将列值从 A 更新到 B 日志将包含更新记录 类似于 在表 T 中 列 C 已从 A 更改为 B 以通过 id I 的事务
  • 获取ArrayList中重复项的数量

    例如 假设我有一个ArrayList可能包含以下值 x x x y y 现在我想要检索的是x and x我希望能够区分我所拥有的x or y因为实际上 我可以在 ArrayList 中拥有任何对象 并且我必须能够区分它们 我想做的是首先转换
  • 操作 struct tm 中的 tm_mon?

    我无法理解这个程序 即tm mon 1 part 我是 C 语言新手 通常我总是编写自己的小程序来应对我在遵循的课程书中设置的任何挑战 但我不得不咨询其他人来解决这个问题 它是课本和他们的代码 所以不是我的 我不明白为什么 1被添加到tm
  • node.js/MySQL:当我尝试插入数据库时​​,某些字符串编码(表情符号)抛出错误

    我正在运行一个 node js 脚本 该脚本从公共 数据库 它是一个 区块链 中提取数据 然后对其执行一些操作 然后将其插入到 MySQL 数据库中 我已经使用 MySQL 数据库UTF8 general ci编码 绝大多数数据都可以很好地