ปัญหาดังกล่าวเกิดจาก default character set ใน MySQL ไม่ได้ถูกตั้งค่าให้เป็น UTF-8 เหมือน Version ก่อนๆ ทำให้ Table ที่สร้างขึ้นมาไม่ได้มี Collation เป็น UTF-8 เมื่อมีการ Insert ภาษาไทยเข้าไปใน Table จึงทำให้ภาษาไทยเละ
วิธีการแก้ไขคือเราต้อง alter table ให้มันกลายเป็น UTF-8 ซะก่อนซึ่งจะให้ alter ที่ละ table มันก็จะเหนื่อยไปนิด ดังนั้นก็เลยเขียน php เพื่อที่จะ alter table ให้กลายเป็น UTF-8 ทั้งหมดซะ
<?php $db = mysql_connect('localhost','username','password'); if(!$db) echo "Cannot connect to the database - incorrect details"; mysql_select_db('alfresco'); mysql_query('ALTER DATABASE CHARACTER SET utf8'); $result=mysql_query('show tables'); while($tables = mysql_fetch_array($result)) { foreach ($tables as $key => $value) { mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); } } ?>
เมื่อรันแล้วให้ลอง restart alfresco ซักทีนึงแล้วก็ลองดูว่าภาษาไทยสามารถใช้งานได้หรือยัง ถ้ายังให้ไป set default character ใน MySQL ให้เป็น UTF-8 ตาม link นี้ครับ http://www.leknarm.com/2010/01/set-mysql-utf8.html
--
Tantai Thanakanok. Open Source Development Co., Ltd.
Tel: +66 38 311816, Fax: +66 38 773128, http://www.osdev.co.th/
ขอบคุณสำหรับความรู้เพิ่มเติมครับ
ตอบลบ