ผมแวะไปอ่านข่าวเก่าหลาย ๆ ข่าว แล้ว Emoji หายไป เปลี่ยนเป็นเครื่องหมาย ? แทน
เป็นไปได้หรือเปล่าถ้าจะปรับปรุงระบบให้สามารถเก็บ Emoji ได้?
เดาว่าเป็นที่ field collation ใน database น่าจะใช้ utf8 ไม่ถึง 4 bytes
ถ้าเปลี่ยนเป็น 4 bytes ก็ควรจะเก็บได้ครับ
Drupal7 ตัวเก่าๆ ตอนนั้นยังไม่รองรับ 4 byte UTF-8 ครับ ถ้าข่าวไหนมีอิโมจิ จะทำให้บันทึกไม่ได้ ทางทีมงานเลยอาจจะแก้ไขโดยการตั้งค่าระบบให้ระบบเปลี่ยนจากตัวอิโมจิที่ระบบตรวจพบเป็นตัว ? แทนมั้งครับ (เพราะเว็บผมที่เป็น D7 ก็แก้ไขปัญหาด้วยวิธีนี้)
แต่ Drupal 7 ตัวหลังๆ ก็รองรับอิโมจิแล้ว เพียงแต่ในข่าวเก่าๆ ระบบมันได้บันทึกเนื้อหาที่มีตัวอิโมจิเป็น ? แล้ว เลยไม่สามารถแก้ไขอะไรได้แล้ว
คาดว่าน่าจะเป็นแบบนี้แหละครับ
สาวก Drupal และ Backdrop CMS ไม่ใช่ใคร ก็ผมนี่แหละ
คิดว่าเป็นที่ MySql น่ะครับ ตอนนี้ utf8 มันเป็น Alias ของ utf8mb3 เวลา create table หรือ set charset ด้วย utf8 มันจะไปเลือก utf8mb3 มา set ให้ เวลา save Emoji มันเลย truncate byte ที่ 4 (Emoji ส่วนใหญ่ใช้ 4 bytes) ของ character ทิ้ง กลายเป็น unknow
ถ้าจะแก้แบบยั่งยืนก็เปลี่ยน field ที่ save เป็น utf8mb4 อะไรก็ได้ ก็หายแล้วครับ (เฉพาะ record ใหม่นะ)
code ใหม่ๆ เลยใช้ utf8mb4_xxxxxx เจาะจงแทน utf8 แทน
เดาว่าเป็นที่ field collation ใน database
น่าจะใช้ utf8 ไม่ถึง 4 bytes
ถ้าเปลี่ยนเป็น 4 bytes ก็ควรจะเก็บได้ครับ
Drupal7 ตัวเก่าๆ ตอนนั้นยังไม่รองรับ 4 byte UTF-8 ครับ ถ้าข่าวไหนมีอิโมจิ จะทำให้บันทึกไม่ได้ ทางทีมงานเลยอาจจะแก้ไขโดยการตั้งค่าระบบให้ระบบเปลี่ยนจากตัวอิโมจิที่ระบบตรวจพบเป็นตัว ? แทนมั้งครับ (เพราะเว็บผมที่เป็น D7 ก็แก้ไขปัญหาด้วยวิธีนี้)
แต่ Drupal 7 ตัวหลังๆ ก็รองรับอิโมจิแล้ว เพียงแต่ในข่าวเก่าๆ ระบบมันได้บันทึกเนื้อหาที่มีตัวอิโมจิเป็น ? แล้ว เลยไม่สามารถแก้ไขอะไรได้แล้ว
คาดว่าน่าจะเป็นแบบนี้แหละครับ
สาวก Drupal และ Backdrop CMS ไม่ใช่ใคร ก็ผมนี่แหละ
คิดว่าเป็นที่ MySql น่ะครับ ตอนนี้ utf8 มันเป็น Alias ของ utf8mb3
เวลา create table หรือ set charset ด้วย utf8 มันจะไปเลือก utf8mb3 มา set ให้
เวลา save Emoji มันเลย truncate byte ที่ 4 (Emoji ส่วนใหญ่ใช้ 4 bytes) ของ character ทิ้ง กลายเป็น unknow
ถ้าจะแก้แบบยั่งยืนก็เปลี่ยน field ที่ save เป็น utf8mb4 อะไรก็ได้ ก็หายแล้วครับ (เฉพาะ record ใหม่นะ)
code ใหม่ๆ เลยใช้ utf8mb4_xxxxxx เจาะจงแทน utf8 แทน