作者liisi (小心一点)
看板PHP
标题[请益] ckeditor复制unicode组成的贴图会看不见
时间Fri Mar 2 19:56:50 2018
公司是电商平台
商品描述的编辑器 是用 ckeditor编辑
会将编辑器组成的内容 存入资料库的栏位
接着在前台的商品介绍呈现出来
目前遇到一个问题
如果我复制 由unicode组成的贴图 再存入资料库 会出问题
导致前台 无法将呈现资料出来
应该是贴图的unicode 存到栏位时 无法转换 导致db存入错误的内容
比如说 我复制 露天的某一段
http://goods.ruten.com.tw/item/show?21307059077449
文字 "新春活动 1" 前面 有三张贴图 都是unicode组成的
想请问一下
是不是需要在config做设定?
或是需要在php加入某参数做转换之类的?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 202.39.58.43
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1519991813.A.342.html
1F:→ JustGame: 资料库编码?资料库连线编码? 03/02 20:53
2F:→ liisi: 资料库编码是utf8_general_ci 03/02 22:30
3F:→ liisi: 希望不要动到资料库编码 太危险了.. 03/02 22:32
4F:→ hiigara: 大部分表情符号的utf8是4byte,mysql的utf8是3byte。存的 03/03 00:34
5F:→ hiigara: 时候会拆成两个3byte(依照rfc2279)。ut8mb4才能处理4byte 03/03 00:36
6F:→ hiigara: 的utf8。 03/03 00:37
7F:→ hiigara: 好像不是rfc2279,只是没实作完全而已 03/03 00:51
8F:推 wotupset: unicode有分版本号 太新的表情符号部分资料库会无法对应 03/04 20:06
9F:→ wotupset: 选有支援的资料库来用就能解决了 03/04 20:06
10F:推 LPH66: hiigara 提的那种应该是 UTF-16 变种的 UTF-8 03/05 21:50
11F:→ LPH66: 那种实际上是 UTF-16 表示後再写成 UTF-8, 所以 U+10000 03/05 21:51
12F:→ LPH66: 以上的字就会变成两个 3 byte 03/05 21:51
13F:→ LPH66: 总之照 hiigara 建议的改用 utf8mb4 就行了 03/05 21:54
14F:→ LPH66: 是说我刚刚翻了一下 mysql 的文件, 好像说 3 byte 的 03/05 21:56
15F:→ LPH66: 是不支援 U+10000 以上的字的, 这应该是原 PO 失败的原因 03/05 21:56
16F:→ LPH66: 但如果程式本身的 UTF-8 支援就是这种半调子的方式的话 03/05 21:57
17F:→ LPH66: 那才有可能像上述那样用 UTF-16 变种硬塞进去 03/05 21:58