ThaiPort

หลังจากพยายามมาหลายวันก็ได้บทสรุปสำหรับการเขียนภาษาไทยเพื่อให้ตัดคำได้จากบราวเซอร์ทุกตัวที่รองรับ Unicode โดยตอนที่เขียนนี้ทดสอบผ่านแล้วจาก Gecko (Firefox, k-meleon), Opera, Trident (Internet Explorer) ทั้งสามตัวสามารถแสดงภาษาไทยได้ถูกต้องทั้งหมด โดยสามารถควบคุมผ่านทาง Unicode สำหรับตัดคำคือ ZWSP (0x200B) โดยในความเป็นจริงแล้วทั้ง Mozilla และ Opera ต่างก็แนะนำให้ใช้เครื่องหมายนี้แทนการหวังให้ Mozilla และ Opera จะยอมทำตัวตัดคำให้

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

วิธีการแก้ไขตอนนี้คือการบังคับให้ ZWSP ต้องถูกแสดงด้วยฟอนต์ Arial Unicode MS เท่านั้น โดยในกรณีของผม ผมใส่มันไปใน CSS ซึ่งยังไม่แน่ใจว่าเป็นการกระทำที่ดีรึเปล่า โดยที่จริงแล้วอาจจะดีกว่าถ้าใส่เป็น Style ลงไปในทุกๆ span เลย อันนี้ต้องไปถามผู้รู้กันต่อไป โดยข้อเสียของวิธีการของผมคือ html มันดูรกมาก ไม่เชื่อลองเข้ามาดูซอร์สดู เอา Style ใส่เข้าไปทุก span คงเน่ากว่านี้

ตอนนี้ที่เหลือคือการทำ php wordbreak กับการทดสอบ tag ตัดคำที่ใช้อยู่ ขอความช่วยเหลือว่าถ้าใครใช้ safari ช่วยรายงานบั๊กการตัดคำหน่อยครับ เผื่อจะได้แก้กันต่อไปได้

๊Update: By Mk’s help, ZWSP Project now work on Mac but not linux. I decided to scope the project to support only linux that came with installed “DejaVu Sans”. If confirmed working, I will implement automatic word breaking for next.

 

lewcpe

CTO at MFEC PLC. Chief Editor at Blognone.com

 

4 thoughts on “ThaiPort

  1. รับทราบครับ ยังไงจะหาทางต่อไปครับ

    ตอนนี้เป้าหมายอยู่ที่ 3 ตัวหลักนี้เท่านั้นล่ะครับ

  2. ่ล่้าสุดนี่แก้บนแมคแล้วครับ

    ปัญหาคือผมไม่มีแมค ดังนั้นใครดูได้ช่วยดูให้ทีนะครับ ว่าแก้ถูกรึยัง

Comments are closed.