-
คิดเงิน “ตามตัวอักษร” แฟร์ไหม?
เห็นวิธีคิดเงิน API ของกูเกิล ทำให้คิดถึงการออกแบบ Unicode และ “ความเท่าเทียม” ในระบบคอมพิวเตอร์
-
Web Character Simplification Chart 0.1 #opendream
ก่อนจะประมวลผลข้อความ เราจำเป็นต้องทำความสะอาดข้อความเสียหน่อย ทั่ว ๆ ไปที่จำเป็นต้องทำ ก็เช่น แปลง new line (\r\n หรือ \n), หรือแปลงให้อยู่ในชุดอักขระ (character set) ที่โปรแกรมใน processing pipeline จะทำงานได้ เช่นแปลง ä เป็น ae หรือแปลง “ ” เป็น ” “, หรือการ normalize ลำดับอักขระ เช่น น.หนู+สระอำ+ไม้โท → น.หนู+ไม้โท+สระอำ, หรือไปถึงขั้นซับซ้อน อย่างแก้ตัวสะกด (กรณีเป็นงานลักษณะจดหมายเหตุ หรือ archival ก็อาจจำเป็นต้องเก็บตัว raw text ก่อนแปลงเอาไว้ด้วย เพราะการแปลงอาจจะ(และมักจะ)เป็น lossy คือแปลงไปแล้วแปลงกลับมาได้ไม่เหมือนเดิม เช่นตัวอย่างข้างบน ที่แปลง “ ” เป็น ” “)…
-
encode("UTF-8", "ignore") ข้าม ๆ เรื่องที่ทำไม่ได้ใน Python
หลังจากเอา python-libthai ของวีร์มาใช้กับข้อมูลที่ได้มาจากเว็บ ก็พบปัญหาเรื่อง character encoding นิดหน่อย libthai นั้นปัจจุบันทำงานกับข้อมูลที่เป็นภาษาไทย 8 บิตอยู่ (น่าจะเป็น TIS-620) ตัว python-libthai เลยมีขั้นตอนการแปลงจากยูนิโค้ดไปเป็น 8 บิตก่อน ทีนี้ ปรากฏว่า encoder “CP874”, “TIS_620” และ “ISO8859_11” ของ Python มันดันแปลงตัวอักษรบางตัวไม่ได้ (เนื่องจากใน charset พวกนั้น มันไม่มีตัวอักษรดังกล่าว) โปรแกรมก็เลยจะตาย ถ้าไปเจออักษรพวกนั้น ก่อนตายมันจะโวยทำนองว่า : UnicodeEncodeError: ‘charmap’ codec can’t encode character u’\u200b’ in position 3560: character maps to <undefined> วิธีแก้แบบถึก ๆ คือ เอาหูไปนาเอาตาไปไร่ซะ ignore…
-
Time for Unicode ?
เราควรจะเปลี่ยนไปใช้รหัสข้อมูลอะไรดี ? สำหรับเอกสารภาษาไทยในโลกยุคอินเทอร์เน็ต จะ Windows-874, TIS-620 หรือ ISO-8859-11 ก็คงไม่เพียงพอแล้ว สำหรับโลกยุคอินเทอร์เน็ตและสังคมพหุภาษา แม้แต่เอกสาร “ภาษาไทย” ในปัจจุบันก็ยังมีตัวอักษรละตินหรือสัญลักษณ์พิเศษต่าง ๆ แทรกอยู่มากมาย ซึ่งบางตัวก็ไม่ได้มีอยู่ทั้งใน Windows-874, TIS-620 และ ISO-8850-11 ได้เวลาเปลี่ยนมาใช้ Unicode ให้หมดรึยังนะ ? (สำหรับงานส่วนใหญ่ ที่ขนาดพื้นที่จัดเก็บข้อมูล/แบนด์วิธ ไม่ได้เป็นข้อจำกัดสำคัญอีกต่อไปแล้ว) ทั้งหน้าเว็บ ไฟล์เอกสาร metadata โค้ดโปรแกรมต่าง ๆ แต่จะใช้อะไรดี UTF-8 หรือ UTF-16 ? Windows NT ขึ้นไป, Windows CE, Java, .NET, Mac OS X และ Qt แพลตฟอร์มเหล่านี้ ใช้ UTF-16 เป็น native character…
-
Encodings/Charsets in Java
Encoding, Canadian Mind Products’s Java Glossary a very detailed resources on encoding/charset-related stuffs in Java ละเอียดมาก List of supported encodings, how to convert them, guide to Readers, other classes/methods, etc. Plus, Unicode in Java by Jason Orendorff (เมื่อคืนทดลองใช้ iBATIS (ORM ตัวนึง) กับภาษาไทยใน MySQL ไม่เวิร์กแฮะ ฟิลด์ไหนที่เป็นภาษาไทย get ออกมาแล้วกลายเป็น null หมดเลย) technorati tags: characters set, encoding, Java
-
Unicode characters in details
Unicode @ FileFormat.info name, info, browser test page, outline (SVG), fonts that support, encoding, how to type it in Windows, Java and .NET properties
-
Unicode, XML, TEI, Ω and Scholarly Documents
โดย Yannis HARALAMBOUS เสนอที่ 16th International Unicode Conference, Amsterdam, 2000 สองตัวแรกส่วนใหญ่คงเคยได้ยินกันมาบ้างแล้ว อยากรู้รายละเอียด ลองอ่าน Unicode, XML TEI คือ Text Encoding Initiative เป็นคล้ายๆ “ข้อแนะนำ” สำหรับการจัดเก็บข้อมูลในคอมพิวเตอร์ ก่อนหน้านี้ใช้ SGML ตอนนี้เริ่มค่อยๆ ปรับเปลี่ยนมาใช้ XML ละ หมายเหตุ: SGML, XML เป็นเพียงแค่ markup language หรือพูดอีกอย่างคือ เป็นเพียงแค่เครื่องมือในการเข้ารหัสเท่านั้น แต่ไม่ได้บอกว่า จะเข้ารหัสยังไง ตัวอย่างเช่น สมมติมี โคลงสี่สุภาพอยู่บทนึง จะเก็บยังไง เก็บทั้งบทรวมกันเป็นก้อนเดียวโดยใส่เครื่องหมายแบ่งบรรทัดลงไปด้วย หรือว่าแยกเป็นสี่ส่วน แต่ละส่วนมีโครงสร้างเหมือนกัน แล้วให้แต่ละส่วนเก็บแต่ละบาท (โคลงสี่สุภาพ 1 บท มี 4 บาท) แล้วจากนั้นค่อยใส่สี่บาทนี้เข้าไปในตัวบทอีกที แล้วเอาตัวบทไปใส่ในตัวโคลงอีกที…
-
Character encoding issues
A tutorial on character code issues – covers many issues in character encoding Germanic Lexicon Project: An introduction to character encoding issues – strategies for the issues Character encoding – list of characters with their coresponding code Multiple Representations – normalization, canonical decompositions, compatibility decompositions, etc. Linguistic Sorting – how characters are sorted in an…
-
Unicode for Programmers (draft)
Short tutorials by Jason Orendorff. With many clear examples of how to work with Unicode in Java and Python. I like this illustration. last updated: 1 March 2002, but things that they had referred to haven’t changed much since then.
-
Common Locale Data Repository
Common Locale Data Repository (CLDR) จัดทำโดยองค์กร Unicode เป็นฐานข้อมูล locale data กลาง ให้โปรแกรมอื่นๆ นำไปใช้ต่อ เพื่อให้แต่ละโปรแกรม มี locale data ที่ถูกต้องตรงกัน ใช้งานร่วมกันได้ และไม่สับสน อ้างอิง L10n.opentle.org เพิ่มเติม: พี่เทพ ตอบคำถาม เรื่องข้อมูลที่ OOo กับ CLDR ไม่ตรงกัน และบางแห่งน่าจะผิด เพิ่มเติม 2: พี่สัมพันธ์ ให้ความเห็น และ อธิบายลักษณะข้อมูล ว่าจะเข้าไปดูได้ยังไง และให้ช่วยกันดู+แก้ไขหน่อย 🙂 Thai locale data in CLDR มีข้อมูลจากหลายแหล่ง ทั้งข้อมูลกลาง (Common), Windows, Sun JDK, IBM JDK, OpenOffice.org, AIX,…