Powered By Blogger

05 June 2007

Ruby On Rails กับ MySQL , Thai Character display

การแสดงผล ภาษาไทย
รับข้อมูล ภาษาไทย จาก form
ใส่ใน mysql อาจทำให้ ตัวหนังสือที่แสดงออกภายหลัง กลายเป็น ???????? แทน

แก้ไขได้ ดังนี้ คือ

เพิ่ม โค้ด

---------------------------------------------
before_filter :configure_charsets

def configure_charsets
@headers["Content-Type"] = "text/html; charset=TIS620"

suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES TIS620'

end
end
----------------------------------------------

ไว้ที่ส่วนต้น ของ ทุกๆ Controlers แล้วก็ ลองป้อนและแสดงข้อมูลใหม่ทาง browser
ไม่จำเป็น ต้อง Restart webserver ครับ ลองๆ
ดูแล้ว ก็ใช้งานได้

ผมใช้ AppServ mysql เป็น ฐานข้อมูล ก็ใช้งานได้ เปลี่ยนจาก ??? มาเป็น ภาษาไทยได้ทันที

ตัวอย่าง เช่น
class EbitController < ApplicationController
before_filter :configure_charsets

def configure_charsets
@headers["Content-Type"] = "text/html; charset=TIS620"

suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES TIS620'
end

end #def

...... โค้ด ส่วนอื่นๆ เช่น def

end #class
----------------------------------

จริงๆแล้วก็ไม่เข้าใจความหมายหรอก
อ่านมาจาก คนที่ชำนาญกว่า ที่เวปนี้ครับ
http://weblog.punneng.com/index.php?m=200607&paged=2

No comments: