เนื่องจากว่า utf-8 นั้น โดยส่วนใหญ่ 1 ตัวอักษร จะใช้ 3 ไบต์ ซึ่งถ้าเป็น tis-620 ก็จะเท่ากับ 3 ตัวอักษร เพราะปกติ tis-620 นั้น 1 ตัวอักษร ก็จะใช้แค่ไบต์เดียว เพราะฉะนั้นคำถามที่คุณแบ๋มถามนั้น โดยส่วนใหญ่แล้วจะเป็นที่ท้ายข้อมูล และรองลงมาก็จะเป็นที่ต้นข้อมูล เกิดจากจำนวนไบต์ของตัวอักษรมันไม่ครบ 3 ก็เลยแสดงผลออกมาไม่ถูกต้อง วิธีแก้ก็ขึ้นอยู่กับที่มาของข้อมูลนั้น ถ้าเกิดว่ามาจากการตัดสตริงด้วย substr ของ php หรือฟังก์ชั่นอื่นๆที่เกี่ยวข้องกับสตริง ก็ให้ใช้ iconv ที่เป็น utf-8 แทน iconv นั้นจะมีฟังก์ชั่นเบื้องต้นที่ใช้ดำเนินการเกี่ยวกับสตริงได้ ลองหาข้อมูลเพิ่มเติมเกี่ยวกับ iconv ดุได้ครับ จะยกตัวอย่างนะครับ เกี่ยวกับการตัดสตริง อย่างเช่น ปกติเราใช้

substr( $str, 0, 10);

เป็นการตัดเอา 10 ตัวอักษรแรกของคำ ก็ให้เปลี่ยนมาใช้แบบนี้แทนครับ

iconv_substr( $str, 0, 10, "UTF-8" );