Fixing Thai in Hotmail w/ Greasemonkey

จากที่เมื่อวานหัดใช้ greasemonkey ดูแล้วรู้สึกว่ามัน powerful ดีทีเดียว วันนี้ลองใช้ทำอะไรที่มันมีประโยชน์มากกว่าลบฟอร์มที่ไม่ต้องการออกบ้าง

โจทย์วันนี้คือ แก้ไขการแสดงผลภาษาไทยของ hotmail ใน Firefox โดยอัตโนมัติ

ปกติแล้วเวลาเข้าเช็คเมลใน hotmail ทาง server ของ hotmail จะส่ง content-type มาผิดประเภท โดยส่งมาเป็น Latin-1 (iso-8859-1) ดังนั้นถ้าเจอเมลที่มีหัวเรื่องเป็นภาษาไทย จะเดือดร้อน อ่านไม่ออก ต้องวุ่นวายไปจิ้ม View -> Character Encoding -> Thai ทุกครั้ง บ่อยๆ เข้ามันก็น่าหงุดหงิด

User script ตัวนี้จะปรับการแสดงผลในหน้า Inbox และหน้าดูข้อความให้ถูกต้อง โดยหลักการทำงานคือ script จะมองหาตัวหนังสือที่ “ควรจะ” เป็นภาษาไทย แล้วเปลี่ยนเป็นตัวหนังสือที่อ่านออกให้ ดูไม่ค่อยจะ elegant เท่าไหร่ แต่ว่าจาก javascript เราไม่สามารถไปแก้ไข characterSet ของ document ได้ (document.characterSet มันเป็น read-only) ก็เลยต้องใช้วิธีลูกทุ่งแบบนี้

วิธีติดตั้งก็เหมือนปกติ

  1. ลง extension greasemonkey (อย่าลืม restart Firefox)
  2. เอา firefox เปิดไปที่หน้านี้ http://dogpositive.com/userscript/hotmail.user.js
  3. จากในเมนู Tools -> Install This User Script

เหตุผลจริงๆ ที่ต้องมานั่งแก้อะไรพรรค์นี้คือ hotmail มันแอบโกง ถ้ารู้ว่าเราใช้ browser อื่นที่ไม่ใช่ IE เข้าไปดู ก็จะส่งหน้าอ่านไม่ออก แบบนี้มาให้

วิธีแก้ไขที่ยั่งยืนคือ ไปใช้ free email ยี่ห้ออื่นที่มันดีกว่านี้อย่าง gmail, yahoo mail จะดีกว่า

  • Yike

    ขอบคุณครับ

  • สีเทาเทา

    >แต่ว่าจาก javascript เราไม่สามารถไปแก้ไข characterSet ของ document ได้

    ใช้ web filtering proxy (ที่ทำ regular expressions ได้)
    แก้ได้ทุกอย่างครับ (iso-8859-1 -> iso-8859-11)

    Privoxy เลิกใช้แล้ว
    Proxomitron ใช้อยู่ (discontinue คนเขียนตายแล้ว, Dedicated to the memory of Scott R. Lemmon)
    Proximodo (OpenSource, Proxomitron clone)

  • e-a-k

    ถ้าเรา reply เมล แล้วมันไม่เปลี่ยนให้ครับ