UTF-8 ใช้พื้นที่ 3 ไบต์ ในการเก็บข้อมูลภาษาไทย 1 อักขระ ดังนั้นจึงไม่สามารถใช้ฟังก์ชัน เช่น strlen() และ substr() กับภาษาไทยที่เป็น UTF-8 ได้ เช่น
$string = “ที่นี่abcd1234″; echo ‘strlen() return: ‘.strlen($string); ผลลัพธ์ที่ได้คือ strlen() return: 26
ตัวเลข 26 มาจาก ภาษาไทย 6×3 = 18, ภาษาอังกฤษ 4 และตัวเลข 4 ตัว
ดังนั้นเพื่อให้นับจำนวนตัวอักขระได้อย่างถูกต้องจะต้องใช้ฟังก์ชัน multibyte string เช่น จากตัวอย่างข้างต้น จะต้องใช้ฟังก์ชัน mb_strlen() แทน strlen()
UTF-8 เป็นคำตอบสุดท้่าย เพื่อให้การใช้ภาษาไทยกับ PHP และ MySQL ใช้งานได้อย่างสมบูรณ์
การสร้างฐานข้อมูลใน MySQL
ให้ตั้งค่าดังต่อไปนี้
Default CHARSET = utf8 COLLATE = utf8_unicode_ci
ตัวอย่างเช่น
CREATE TABLE brand ( pk_brand int(5) NOT NULL auto_increment, brand varchar(250) collate utf8_unicode_ci NOT NULL, brand_logo varchar(200) collate utf8_unicode_ci NOT NULL, website varchar(200) collate utf8_unicode_ci default NULL, PRIMARY KEY (pk_brand) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
แล้วทำไมจึงไม่ใช้ utf8_general_ci? [...]
Tags
.htaccess Apache blogspot CentOS codeigniter CSS domain name driver Drupal Flickr Hotmail HTML internet law linux Mac OS X mailing list mailman MICT mod_rewrite monitor MSL MySQL name server Network PHP Postfix Security Smarty sony Spammail SPF theme TLS traffic log Universiade UTF-8 UTF8 vbulletin Wordpress การเมือง จตุคาม รูปภาพ สถิติ เรารักในหลวง
