• September 16, 2018

    utf8_bin VS utf8_unicode_ci อะไรจะเจ๋งกว่ากัน

    ก่อนหน้านี้ที่ผมสร้างฐานข้อมูล ผมจะใช้ collation เป็น utf8_unicode_ci เสมอ เพื่อป้องกันปัญหาภาษาไทยในmysqlเพี้ยน

    แต่ปัญหาอยู่ที่ว่า ค่าเริ่มต้นของการสร้างฐานข้อมูลในโฮสต์จริง ส่วนใหญ่มันเป็น latin_swedish_ci ซึ่งก่อนที่ผมจะลงระบบได้

    ผมต้องเข้าไปแก้ตรงนี้ก่อนให้เป็น utf8_unicode_ci เพื่อไม่ให้ภาษาไทยมันเพี้ยน ทำให้เสียเวลาเป็นอย่างยิ่ง แต่ก็ทนใช้แบบนี้เรื่อยมา จนถึง ณ วันนี้เลยลองใช้ utf8_bin ดู ปรากฏว่า เวิร์ค มาก ผมไม่ต้องเข้าไปเปลี่ยนตัว collation อีกต่อไป ไม่ว่าจะเป็น collation ใด เว็บผมก็แสดงภาษาไทยได้ถูกต้อง แม่นยำ ไม่มีเพี้ยนแต่ประการใด แต่ก็อดสงสัยไม่ได้ว่าเหตุใดข้อมูลมันถึงไม่เพี้ยน เลยลองเข้าไปดูในตารางที่เก็บข้อมูลก็ปรากฏว่า ข้อมูลทั้งหมดถูกแปลงให้เป็นเลขฐาน 16 หมดเลย…มิน่า ข้อมูลถึงยังแสดงผลถูกต้องได้ เพราะว่ามันแปลงกลับไปกลับมานี่เอง

    ข้อเสียก็คือ ข้อมูลมันถูกแปลงอยู่ เวลากดเข้าไปดู ก็ไม่รู้เรื่อง แต่ก็ปลอดภัยไปอีกแบบ ที่จริงมันมีวิธีการ export ออกเป็นอักขระปกติได้ ไว้โอกาสหน้าจะมาเขียนวิธีการบอก



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories


Uncategorized