วิธีแก้ปัญหา PHP substr utf8

เคยเจอปัญหาเมื่อใช้คำสั่ง PHP substr กัย text ที่เป็น utf8
พบว่านับตำแหน่งผิดตามตัวอย่างเช่น

$new_str=substr($new_str,0,50);

พบปัญหาว่าไม่สามารถตัดได้ที่ตำแหน่ง 0 ถึง 50 จริง
แถมด้านหลังบางทีจะกลายเป็นต่างดาวอ่านไม่ออก

แนวทางแก้คือเปลี่ยนมาใช้คำสั่ง mb_substr แล้วกำหนด encode utf8 เข้าไป
ตามตัวอย่างด้านล่างครับ

$new_str=mb_substr($new_str,0,50,"utf8"); 

ลองแล้วสามารถ substr ได้ตรงและผลออกมาได้ถูกต้อง

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory

Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก

Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java