如何解决我们如何将表情符号保存在 SQL 数据库中以保持它们的唯一性以进行相等比较?
将表情符号保存到数据库时出现问题。
我们已将表格列更改为字符集和排序规则,以节省足够的字节以区分表情符号。
ALTER TABLE TableName MODIFY TableColumn VARCHAR(2048) CHaraCTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
当我们保存以下表情符号时,二进制值如下:
♥️ | e2 99 a5 ef b8 8f
? | f0 9f 90 92
? | f0 9f 90 b5
一些表情符号 (♥️) 保存有二进制信息,使我们能够将它们区分为独特/独立的表情符号。
由于我们不想想要将相同的表情符号保存两次,因此对于我们的用例,我们正在检查数据库中的“值”。如果值存在,我们不保存表情符号。
但是,许多表情符号值,包括? 和?,都被视为相同的值。
因此,当我们试图拯救?和?时,只有一个被拯救......
为什么它们被视为相同的值?
我们如何使用 sql 将 ? 和 ? 保存为可识别的不同表情符号?
我们可以使用更好的字符集或排序规则吗?
我们正在通过单独的存储库访问 MysqL 和 MSsql 数据库,这些存储库是在 .NET 框架项目中用 C# 编写的。
解决方法
其实你的坐猴代码是错误的!那将是 f0 9f 90 92
,而不是 f0 9f 90 b5
。请参阅 https://www.fileformat.info/info/unicode/char/1f412/index.htm,UTF-8 十六进制代码。其他两个代码似乎是正确的。
无论您做什么,错误都不会出现在您显示的代码一侧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。