eIT.com.cn 2022/9/22 13:15:07 阅读 77 次
本文介绍了MySQL、UTF-8和Emoji字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述我正在开发一个带有PHP+MySQL后端的iOS应用程序。这款应用有一个聊天部分,需要支持表情符号。 我的表是utf8_unicode_ci。如果我没有在我的脚本中调用‘set Names UTF8’,它实际上起作用的表情符号--无论在数据库中输入什么,都会像应该的那样返回给客户端。 问题是,这(如果我理解正确的话)在数据库中错误地存储了特殊字符,这破坏了字符串比较(即,在比较字符串时不再与I相同)。 然而,如果我真的调用集合名称UTF8,表情符号字符突然被插入为一堆问号。 有没有关于正确处理这一问题的建议?谢谢! 推荐答案问题是数据库是否具有变音不敏感比较。另一个问题是组成字符,可以表示为一个Unicode字符或两个组成代理项对的Unicode字符。有几种方法可以将字符串转换为预先合成或分解的形式:preComposedStringWith*和DisplposedStringWith*。 MySQL似乎支持两种形式的Unicode ucs2(即被utf16取代的旧形式),即每个字符16位和UTF8,每个字符最多3个字节。坏消息是,这两种形式都不支持需要至少17位的第一层面字符。(主要是表情符号)。看起来MySQL5.5.3和更高版本也支持utf8mb4、utf16和utf32支持BMP和补充字符(阅读emoji)。请参阅MySQL Unicode Character Sets。以下是演示不同Unicode字节表示形式的一些代码和结果。
//对于某些代理对,没有其他形式
NSLog输出:
这篇关于MySQL、UTF-8和Emoji字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! |
• FlASK+PyMySQL给出错误,没有属性';setTimeout'; (2023/1/29 21:14:33)
• 在EF6中执行复杂的原始SQL查询 (2022/9/24 22:27:40)
• AWS RDS中的休眠反应性非Vert.x上下文处于活动状态 (2022/9/24 16:27:54)
• 将文本表情符号从MySQL复制到SQL Server (2022/9/22 14:27:11)
• MySQL、UTF-8和Emoji字符 (2022/9/22 13:15:07)
• 使用MySQL在Android应用程序中存储和显示表情符号 (2022/9/21 21:35:07)
• 带有UTF8的mySQL转储无法导出正确的表情符号字符串 (2022/9/21 19:08:56)
• 如何使用utf8mb4在MySQL中通过emoji进行搜索? (2022/9/21 17:56:58)
• 将表情符号/表情符号添加到SQL Server表 (2022/9/21 17:56:58)
• MySQL utf8mb4,保存表情符号时出错 (2022/9/21 17:56:57)
SQL安装配置 | QQ安全 | Microsoft安全漏洞 | SQLite | Docker | Photoshop | Illustrator | Java密码学 | 数据库安全 | Linux软件使用 | 通过示例教程学习C | Web2py | XML | 手机上网 | SQL安全设置 | 数据库文摘 | 安全管理 | Parrot | AWS Lambda | 企业完美解决方案VPN专题
合作媒体与友情链接 |
生活常识小贴士 | 软件开发教程 | 智慧城市生活网 | 息县通生活服务[移动版] | 息县商圈[移动版] | 美食菜谱 |
健康养生 | 法律知识 | 科技频道 | 电影影讯 | 留学考研学习 | 星座生肖|解梦说梦 |
关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明 |
Copyright © 2023 eIT.com.cn. All Rights Reserved. | 豫ICP备2022012332号 |