วิธีแก้ปัญหา 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 ได้ตรงและผลออกมาได้ถูกต้อง

ความคิดเห็น

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

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

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

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