ไม่รู้ว่าผมเข้าใจถูกหรือเปล่านะครับ
อันนี้ผมเขียนโค้ดขึ้นมาแล้วทดสอบโดยฐานข้อมูลใช้ tis-620 / หน้า page ใช้ windows-874 ลองใช้แล้วไม่มีปัญหา
ผมทำแบบตัดสระและวรรณยุกต์ออกทั้งหมดนะครับ (ไม่ชัวร์ว่าที่คุณพูดว่าสระ อะ อา อิ อี นั้นตัดแค่ 4 สระหรือตัดทุกสระ เพราะเห็นหัวข้อกระทู้บอกให้ไม่นับสระ *0*)
function th_strlen($str)
{
$new = preg_replace('/[^0-9A-Za-zก-ฮ๐-๙]/','',$str); // ตัดทุกอย่างนอกเหนือขอบเขตที่ระบุไว้ทิ้ง
return strlen($new);
}
echo th_strlen("ตู้ไม้ที่บ้านเอียงจ้ะABC 123+-*#"); // ได้ 15 (นับเพียง "ตมทบนอยงจABC123" )
ถ้ามีปัญหาใดๆ บอกนะครับผม

สงสัยจะมีปัญหา กับการ Encode แน่เลยคะ ลองโค้ดที่ให้มาใช้ได้ปกติเลย นับได้ปกติ
แต่ปัญหาที่เจอคือ พอเอาไปใช้งานจริง ในหน้า ที่ใส่ฟังชั่น ทำการ ใส่ไว้แบบนี้
print '<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />';
จากนั้น ก็ทำการ
include('../config.php');
include('../account/account.php');
mysql_query(" SET NAMES UTF8");
แล้ว พอมันไปใช้งานฟังชั่น
ก็จะให้ทำการดึงข้อมูลที่จะ นับจำนวนคำมาจากฐานข้อมูล ซึ่ง ได้มีการตั้งใส่ส่วนนี้ไว้เป็น tis-620
พอฟังชั่น นับจำนวนคำทำงาน
ลองพิมพ์แค่ตัวอักษร "ด" = แต่มัน นับ ได้ 3 character
ใครก็ได้ช่วยที แก้ยังไงได้บ้างคะ
ลองแก้ ตรง mysql_query(" SET NAMES UTF8"); เป็น tis620 และ windows-874 แล้ว ก็ยังนับไม่ถูกต้อง