15 June 2005

ทดสอบ Drivel

ทดสอบโพสต์จาก Drivel ที่แก้ไขแล้ว

หลังจากที่เมื่อวานทดลองใช้ Drivel รุ่น 2.0 ซึ่งสนับสนุน Atom API หรือ Blogger 2.0 ในการติดต่อกับเซิร์ฟเวอร์ แล้วพบปัญหาว่าไม่สามารถใช้งานภาษาไทยได้ เนื่องจากข้อมูลทั้งหมดถูกเปลี่ยนไปอยู่ในรูป character entity เช่น &xE49; ทำให้อ่านไม่ออก แก้ไขไม่ได้ วันนี้เลยลองเอาซอร์สของ Drivel มาแกะดู ก็พบว่าข้อมูลที่ส่งมาจาก blogger ก็ถูกต้องดี ปัญหาเกิดขึ้นตอนแปลงข้อมูล ซึ่งใช้ libxml2 โดยใช้ฟังก์ชัน xmlDocNew และ xmlDocDumpFormatMemory เพื่อสร้างเอกสาร xml ตัวใหม่ แล้วปรากฏว่าไม่ได้กำหนดวิธีการเข้ารหัสตัวอักษรที่ถูกต้อง (เดาว่าค่าปริยายคงจะเป็น us-ascii) ทำให้มีการแปลงข้อมูลทั้งหมดให้อยู่ในรูป character entity เพื่อให้สอดคล้องกับวิธีการเข้ารหัส การแก้ไขก็ทำได้ง่ายมากๆ เพียงแค่เพิ่ม

content->encoding = xmlStrdup("UTF-8");

ทุกอย่างก็จะเรียบร้อย เนื่องจากกำหนดให้เป็น UTF-8 แล้ว จึงไม่จำเป็นต้องแปลงข้อมูลอีก เสร็จแล้วคงจะต้องไปรายงานบักอีกทีจึงจะสมบูรณ์

หมายเหตุ: ตอนนี้ยังพบว่าไม่สามารถแก้ไขข้อมูลที่แปะไปแล้วได้ แต่ดูเหมือนว่าไม่ได้เกิดจากส่วนที่แก้ไข เพราะถึงไม่แก้ก็มีปัญหาอยู่ดี ไม่รู้ว่าเกิดจากส่วนไหน มีปัญหาี่ตัวเซิร์ฟเวอร์ หรือว่าเป็นที่ proxy ที่ใช้งานอยู่ คงต้องเอาไปลองที่อื่นก่อน

No comments: