[請益] ckeditor複製unicode組成的貼圖會看不見

作者: liisi (小心一點)   2018-03-02 19:56:50
公司是電商平台
商品描述的編輯器 是用 ckeditor編輯
會將編輯器組成的內容 存入資料庫的欄位
接著在前台的商品介紹呈現出來
目前遇到一個問題
如果我複製 由unicode組成的貼圖 再存入資料庫 會出問題
導致前台 無法將呈現資料出來
應該是貼圖的unicode 存到欄位時 無法轉換 導致db存入錯誤的內容
比如說 我複製 露天的某一段
http://goods.ruten.com.tw/item/show?21307059077449
文字 "新春活動 1" 前面 有三張貼圖 都是unicode組成的
想請問一下
是不是需要在config做設定?
或是需要在php加入某參數做轉換之類的?
作者: JustGame (JustGame)   2018-03-02 20:53:00
資料庫編碼?資料庫連線編碼?
作者: liisi (小心一點)   2018-03-02 22:30:00
資料庫編碼是utf8_general_ci希望不要動到資料庫編碼 太危險了..
作者: hiigara (石頭)   2018-03-03 00:34:00
大部分表情符號的utf8是4byte,mysql的utf8是3byte。存的時候會拆成兩個3byte(依照rfc2279)。ut8mb4才能處理4byte的utf8。好像不是rfc2279,只是沒實作完全而已
作者: wotupset (wotupset)   2018-03-04 20:06:00
unicode有分版本號 太新的表情符號部分資料庫會無法對應選有支援的資料庫來用就能解決了
作者: LPH66 (-6.2598534e+18f)   2018-03-05 21:50:00
hiigara 提的那種應該是 UTF-16 變種的 UTF-8那種實際上是 UTF-16 表示後再寫成 UTF-8, 所以 U+10000以上的字就會變成兩個 3 byte總之照 hiigara 建議的改用 utf8mb4 就行了是說我剛剛翻了一下 mysql 的文件, 好像說 3 byte 的是不支援 U+10000 以上的字的, 這應該是原 PO 失敗的原因但如果程式本身的 UTF-8 支援就是這種半調子的方式的話那才有可能像上述那樣用 UTF-16 變種硬塞進去

Links booklink

Contact Us: admin [ a t ] ucptt.com