-
我建表时一直顺手写 CHARSET=utf8 自以为这就是万国通吃的 UTF-8 什么字都存得下,直到有用户把昵称改成带了个笑脸 emoji,插入直接报 Incorrect string value 整条失败、宽松模式下昵称还被从 emoji 那里齐刷刷截断,排查很久才知道 MySQL 的 utf8 根本不是完整 UTF-8 而是只支持三字节的 utf8mb3 存不下四字节 emoji 的深度复盘
我建数据库表时一直习惯性地写 CHARSET=utf8,心里笃定 utf8 就是大名鼎鼎的 UTF-8、万国码、什么语言什么字符都能存,中英日韩这么多年也确实一直好好的。直到有个用户把昵称改成带了一个笑脸 emoji,保存直接炸了:严格 sql_mode 下报 ERROR 1366 Incorrect string value 'xF0x9Fx98x80' for column…- 3
- 0
-
字符编码与乱码完全指南:从一次"数据库里的中文全变成了问号"看懂 UTF-8、字节与编码声明
2020 年我做一个系统要处理大量文本用户的昵称文章的正文上传上来的文件存字符串读字符串这件事我压根没多想第一版我做得很省事字符串嘛就是一串字存进去读出来不就行了读写文件直接 open 存数据库直接塞从来不操心什么编码不编码的本地开发时真不错我自己存个中文昵称写段中文正文读出来打到屏幕上一个字不差几行代码搞定我心里很踏实可等这个系统真正上线还经历了一次从老系统导数据又换了台服务器一串问题冒了出来第…- 0
- 0
-
字符编码完全指南:从 ASCII 到 Unicode 再到 UTF-8,一次彻底搞懂
乱码,大概是每个开发者都遇到过的"灵异事件":数据库里好好的中文,取出来变成一堆问号;别人发来的文件,打开全是"锟斤拷";网页一打开,满屏方块。这些问题的根源,都在"字符编码"这四个字上。这篇文章把 ASCII、Unicode、UTF-8 这条主线一次性讲透,再补上 UTF-16、乱码排查、数据库编码、emoji 这些实战话题 —— 看完…- 14
- 0
Unicode
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!



