我有一个node.js脚本运行,将数据从公共“数据库”中取出(这是一个区块链'),然后对其执行一些操作,然后将其插入到MySQL数据库中。我有使用UTF8_general_ci
编码的MySQL数据库。绝大多数的数据解析都很好,但每隔一段时间就会碰到一些无法插入的东西。我得到这个错误:node.js/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,
这表明,这似乎是导致错误串的位,它总是有这种独特的问号:
This looks like Paradise for me! ����\
我猜这是一个编码问题?有没有一种方法可以在它引发错误之前将其转换?我不确定这个区块链使用的是什么编码,我甚至不知道我会如何发现。
编辑:这里是(误差)另一个例子显示了Web界面上这个blockchain:
And your very welcome !
另一个编辑:我要指出的是,我使用mysql.format(sql, inserts)
来处理与无意的SQL问题data - https://github.com/mysqljs/mysql#preparing-queries
是否有关于MySQL的一侧或节点方的错误? –
它显示在节点控制台中。我刚才会编辑一些错误信息。 – erv
尝试utf8mb4(mysql的UTF8的实际实现) – Strawberry