วันพุธที่ 5 มกราคม พ.ศ. 2554

แก้ปัญหาชื่อภาษาไทยบน Alfresco เละใน Version 3.4 บน Windows

Share it Please
เมื่อลง Alfresco 3.4 บน Windows แล้วเมื่อสร้าง Space หรือไฟล์ที่มีชื่อภาษาไทยแล้ว ชื่อไฟล์ดังกล่าวจะกลายเป็น ????

ปัญหาดังกล่าวเกิดจาก 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/

1 ความคิดเห็น:

Blogroll

About