บนเครื่อง Unix baseก ทั้งหลายมักจะมีปัญหาของการแสดงผลตัวอักษร ไม่มากก็น้อย
(จริงๆ Windows based มันก็มีปัญหาเหมือนกัน แต่วันนี้เจอบน Solaris อ่ะ)
คงเป็นเพราะระบบดั้งเดิมมันรองรับแต่ภาษาอังกฤษ
พอจะเอามาใช้กับภาษาอื่นๆก็ติดขัดขลุกขลักไปซะทุกที
ต่อให้ระบบหนึ่งรองรับได้ทุกภาษาแต่พอส่งไฟล์เข้าอีกระบบหนึ่งกลับพบว่าทำงานไม่ได้ เพราะไม่รองรับบางภาษา
ก็คงเป็นอย่างนี้ไปเรื่อยๆ จนกว่าทุกระบบจะรองรับมาตราฐาน unicode เดียวกัน (มั้ง)
ทีนี้ปัญหาของเราก็คือว่า เครื่อง Sun Blade สมัยเก่าๆ ซึ่งใช้ Solaris 5.8 เป็น OS
มันเคยถูก set Timezone ให้เป็นเมื่องไทย
การ set time zone สามารถทำได้ตั้งแต่ ตอนลง OS ครั้งแรก หรือการทำ sys-unconfig
ทีนี้พอ Time Zone มันเป็นประเทศไทย (จริงๆมันก็ถูกแล้ว เพราะเวลาจะได้ไม่เพี้ยน คือจะได้เป็น GMT+7)
เวลาใช้คำสั่ง ls -l ซึ่งมันจะแสดงเวลาของ files ด้วย โดยถ้าเราเป็น local user คือใช้งานหน้าเครื่อง เวลาที่แสดงให้เราเห็นจะเป็นภาษาอังกฤษ ซึ่งก็ไม่มีปัญหาอะไร แต่พอเราทำ telnet หรือ remote login จากเครื่องอื่น (Windows) พอทำ ls -l จะพบว่า server จะพยายามแสดงผลเวลาเ้ป็นภาษาไทย (เข้าใจว่างั้น เพราะมันโชว์ตัวยึกยือๆ เพื่อบอกให้รู้ว่ามันแสดงผลในภาษาอื่น) หรือถ้าเราใช้ ftp software เช่น ws-ftp ในการ LIST files จะพบว่า modified time มันจะเป็นช่องว่าง เนื่องจาก ws-ftp มันไม่้รู้ว่าเวลาที่ได้รับมันเป็นภาษาอะไร
เดือดร้อนเราจนได้
จริงอยู่ว่าเคย set บนเครื่อง HP-UX มาแล้ว
เลยคิดว่ามันเหมือนกัน
ก็เลยลองไปเช็คที่ไฟล์ /etc/dt/config/Xconfig (/usr/dt/config/Xconfig)
ลองแก้ไข แล้ว log out และ reboot ก็ไม่ได้
ลองตรวจสอบไฟล์หลายไฟล์จนเกือบถอดใจ
ก็ยังไม่ได้
จนมาเอะใจไฟล์ TIMEZONE ในห้อง etc (/etc/TIMEZONE)
เมื่อตรวจสอบแล้วพบว่าเป็น link ของไฟล์ /etc/default/init
ซึ่งเป็นหนึ่งในไฟล์ config ตั้งต้น
เมื่อเข้าไปดูจะพบว่ามีการ config ค่าของ LC เอาไว้หลายค่า โดยบางค่าเช่น LC_TIME ถูกกำหนดให้มีค่าเป็น th_TH ซึ่งก็คือประเทศไทย
ค่าที่ถูกกำหนดใน file นี้จะมีผลสะท้อนเมื่อเราใช้คำสั่ง locale ในการตรวจสอบภาษาที่ระบบใช้
เมื่อเป็นเช่นนี้เลยทำการแก้ LC_TIME ให้มีค่าเป็น C
ลองรีบูต (จริงๆ log-out ก็น่าจะได้ แต่เอาชัวร์)
ก็พบว่าการ telnet หรือ ftp เข้ามาก็จะได้รับเวลาของ file ออกไปเป็นภาษาอังกฤษที่ถูกต้องซะที
ง่ายๆแค่นี้เลย - แต่หานานมาก