วิธีแก้ปัญหา การตัดข้อความด้วย substr แล้วเป็น สี่เหลี่ยม
ปกติ ถ้าเข้าใช้ ภาษาไทยปกติก็จะไม่เจอปัญหานี้ แต่ถ้าเป็นเว็บ หรือ ฐานข้อมูลที่ใช้ UTF-8
เวลาตัดข้อความด้วย substr ก็จะเจอปัญหา ตัวสุดท้ายกลายเป็นสี่เหลี่ยม ทางแก้คือต้องใช้ function ที่ทำงานกับข้อความ ที่เป็น multi-byte
$text="Data Transfer หรือ Bandwidth คือ ข้อมูลที่วิ่งเข้าและออกระหว่างเครื่อง Server และผู้ที่เข้ามาติดต่อใช้งานเว็บไซต์ ไม่ว่าจะเป็นผ่านทาง HTTP,FTP หรือ ทาง E-mail ก็ตาม ซึ่งโดยทั่วไป โฮสติ้งแต่ละที่ ก็ได้กำหนดปริมาณการเข้าออกข้อมูลไว้ในหน่วยเป็น Byte และมีการจำกัดปริมาณไว้ต่อเดือนตามอัตราที่เหมาะสมของแต่ละขนาดของแพลน Web Hosting ซึ่ง Data Transfer หรือ Bandwidth เหล่านี้จะถูกแบ่งให้แต่ละเว็บไซต์ในเครื่อง Server เดียวกัน ตามที่ผู้ให้บริการเว็บโฮสติ้งกำหนดไว้";
echo mb_substr($text,0,124,'UTF-8'); //หรือ
echo iconv_substr($text, 0,124, "UTF-8");