gpt4 book ai didi

javascript - Node .js/MySQL : Some string encodings (Emoji) are throwing errors when I try to insert into database

转载 作者:行者123 更新时间:2023-11-29 03:55:51 25 4
gpt4 key购买 nike

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

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,

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

这对我来说就像天堂! ����\

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

编辑:这是另一个示例(错误)显示在该区 block 链的 Web 界面上:

And your very welcome !👍👍👍💕💕💕

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

最佳答案

可能的答案是 MySQL 连接没有指定 utf8mb4 . (具体来说,MySQL 的 utf8 满足表情符号。)你能提供连接代码吗?这是一个回退:连接到 MySQL 后执行:

SET NAMES utf8mb4

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

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

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

node.js 连接池

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

参见 stackoverflow

关于javascript - Node .js/MySQL : Some string encodings (Emoji) are throwing errors when I try to insert into database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46764071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com