在文字編輯器裡時時常會遇到需要輸入表情的需求(圖1)
錯誤碼:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
然後上網尋找答案原因是一個表情符號就佔用了四個字元(實際看起來會長這樣\xF0\x9F\xA4\x94)(圖2)
所以😀不單純如我想像他是個^_^組合文字
那問題來了,舊版DB charset utf8只能存放三個位元的字,所以會報錯,解決方式有兩種,第一就是轉成utf8Array,然後再轉成文字存入,取出再decode,但這個方法較為麻煩,已很容易忘記decode就會看到一串物件所以我選用從根本解決方式,就是把db charset改成新的utf8mb4(圖3),這樣就可以直接存字個字元的文字了,程式碼也不用做什麼調整,唯一容易疏忽的就是,不光是DB要改,程式碼的連線資訊也要改(這很容易忽略)(圖4)