表情符号未使用 mysql 和 node 保存在数据库中
Posted
技术标签:
【中文标题】表情符号未使用 mysql 和 node 保存在数据库中【英文标题】:Emojis not saved in the database using mysql and node 【发布时间】:2021-01-09 11:41:14 【问题描述】:我想在数据库中保存表情符号
但插入数据库时出错
错误:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:不正确的字符串值:'\xF0\x9F\x98\x9B\xF0\x9F...' 用于第 1 行的列 'text'
我使用了 utf8mb4_unicode_ci 聊天集 utf8mb4 引擎innodb
我也在连接文件中使用过这个
let connection = mysql.createConnection(
host : _CONF.mysql.host,
user : _CONF.mysql.user,
password : _CONF.mysql.password,
port : _CONF.mysql.port,
database : _CONF.mysql.database,
timezone : _CONF.mysql.timezone,
charset : 'utf8mb4',
collate : 'utf8mb4_unicode_ci',
multipleStatements : _CONF.mysql.multipleStatements
);
`````
I dont know what I can do next to solve my problem. It would be grateful If anyone can help me out
【问题讨论】:
列的数据类型是什么? 列的数据类型是varchar 您是否尝试过使用 Binary 或 VarBinary?? 还没我会尝试 哦,谢谢你,它解决了我的问题。非常感谢 【参考方案1】:如果列的dataType是blob,则将表情符号转换为blob数据并存储为blob。 如果它是一个字符串,您可以将 blob 转换为字符串。您使用 Filereader 模块执行以下操作。
reader.readAsText(blb);
【讨论】:
我在 mysql 列中使用 varbinary 数据类型。并使用 fieldname.toString() 从数据库中获取值。以上是关于表情符号未使用 mysql 和 node 保存在数据库中的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring 应用程序中的休眠将表情符号 unicode 字符保存在 mysql 数据库中
表情符号未正确存储在 MySQL 5.6 中,排序规则为 utf8mb4
(节点:47028)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“表情符号”