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

看板PHP作者 (小心一點)時間6年前 (2018/03/02 19:56), 編輯推噓2(2015)
留言17則, 5人參與, 6年前最新討論串1/1
公司是電商平台 商品描述的編輯器 是用 ckeditor編輯 會將編輯器組成的內容 存入資料庫的欄位 接著在前台的商品介紹呈現出來 目前遇到一個問題 如果我複製 由unicode組成的貼圖 再存入資料庫 會出問題 導致前台 無法將呈現資料出來 應該是貼圖的unicode 存到欄位時 無法轉換 導致db存入錯誤的內容 比如說 我複製 露天的某一段 http://goods.ruten.com.tw/item/show?21307059077449 文字 "新春活動 1" 前面 有三張貼圖 都是unicode組成的 想請問一下 是不是需要在config做設定? 或是需要在php加入某參數做轉換之類的? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.58.43 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1519991813.A.342.html

03/02 20:53, 6年前 , 1F
資料庫編碼?資料庫連線編碼?
03/02 20:53, 1F

03/02 22:30, 6年前 , 2F
資料庫編碼是utf8_general_ci
03/02 22:30, 2F

03/02 22:32, 6年前 , 3F
希望不要動到資料庫編碼 太危險了..
03/02 22:32, 3F

03/03 00:34, 6年前 , 4F
大部分表情符號的utf8是4byte,mysql的utf8是3byte。存的
03/03 00:34, 4F

03/03 00:36, 6年前 , 5F
時候會拆成兩個3byte(依照rfc2279)。ut8mb4才能處理4byte
03/03 00:36, 5F

03/03 00:37, 6年前 , 6F
的utf8。
03/03 00:37, 6F

03/03 00:51, 6年前 , 7F
好像不是rfc2279,只是沒實作完全而已
03/03 00:51, 7F

03/04 20:06, 6年前 , 8F
unicode有分版本號 太新的表情符號部分資料庫會無法對應
03/04 20:06, 8F

03/04 20:06, 6年前 , 9F
選有支援的資料庫來用就能解決了
03/04 20:06, 9F

03/05 21:50, 6年前 , 10F
hiigara 提的那種應該是 UTF-16 變種的 UTF-8
03/05 21:50, 10F

03/05 21:51, 6年前 , 11F
那種實際上是 UTF-16 表示後再寫成 UTF-8, 所以 U+10000
03/05 21:51, 11F

03/05 21:51, 6年前 , 12F
以上的字就會變成兩個 3 byte
03/05 21:51, 12F

03/05 21:54, 6年前 , 13F
總之照 hiigara 建議的改用 utf8mb4 就行了
03/05 21:54, 13F

03/05 21:56, 6年前 , 14F
是說我剛剛翻了一下 mysql 的文件, 好像說 3 byte 的
03/05 21:56, 14F

03/05 21:56, 6年前 , 15F
是不支援 U+10000 以上的字的, 這應該是原 PO 失敗的原因
03/05 21:56, 15F

03/05 21:57, 6年前 , 16F
但如果程式本身的 UTF-8 支援就是這種半調子的方式的話
03/05 21:57, 16F

03/05 21:58, 6年前 , 17F
那才有可能像上述那樣用 UTF-16 變種硬塞進去
03/05 21:58, 17F
文章代碼(AID): #1QcJm5D2 (PHP)
文章代碼(AID): #1QcJm5D2 (PHP)