วันก่อนเจอปัญหา php ให้ค่า string length มาผิด ไม่ตรงกับที่นับด้วย javascript

หลังจากนั่งหาข้อมูลอยู่พักนึงก็เลยรู้ว่าสาเหตุเกิดจาก ตัวอักษรแต่ละตัวของ utf8 นั้นใช้ byte ในการเก็บมากกว่า 1 byte ทำให้ strlen() อ่านผิด

วิธีแก้นั้นก็ง่ายนิดเดียวด้วยการใช้ function utf8_decode() ก่อนเข้า strlen() ก็เป็นอันเรียบร้อย

$len = strlen(utf8_decode($string));

นับด้วย javascript

นับด้วย javascript

นับด้วย PHP

นับด้วย PHP