Ads

2552/06/14

[COM006] How to convert UTF-8 to ANSI ? (Thai fonts)

problem:
ผมบังเอิญพบปัญหานี้เข้า เมื่อตอนที่มีการใช้งาน text file ข้าม platform
คือ เอา .txt ที่เขียนจากใน windows xp ซึ่งมีเนื้อหาเป็นตัวอักษรภาษาไทย ไปเปิดใน ubuntu
โดยทาง ubuntu ก็มอง .txt นั้นเป็น executable file ไป

เมื่อเลือกให้ display ขึ้นมา ก็พบว่าข้อความทั้งหลายที่เป็นภาษาไทยนั้น กลายเป็นภาษามนุษย์ต่างดาวไปเสียแล้ว

และเมื่อต้องการที่จะกู้คืนด้วยการ save as แล้วตั้งค่า encoding ใหม่ ให้เป็น ANSI
ผลลัพธ์กลับออกมากเป็น ' ???? ' ไปเสียหมด

สำหรับใน ubuntu ลองใช้ nedit และ gedit ในการ save as ใหม่ให้เป็น encoding
แบบ TIS-620 ก็แจ้ง error มาหน้าด้านๆและไม่ยอมให้ save ไฟล์ด้วย

แล้วจะทำไงดีเนี่ย?

เผลอลบไฟล์ต้นฉบับที่อ่านได้ใน windows xp ทิ้งไปแล้วซะด้วย !?!

solution:
1. ผมเอาไฟล์ที่มีปัญหา กลับมาเปิดใน windows xp
และใช้โปรแกรม UltraEdit เปิดไฟล์เจ้าปัญหาขึ้นมา

2. จากนั้นลอง save as เปลี่ยน format ให้เป็นแบบ Unicode (ASCII Escaped)

3. ปิดไฟล์แล้ว เปิดใหม่

4. จะพบการเปลี่ยนแปลงบางอย่าง คือภาษายังป็นมนุษย์ต่างดาวอยู่ แต่สังเกตดีๆ จะมี tag บางอย่างโผล่ขึ้นมา
เช่น \u0170 \u20AC เป็นต้น

5. save as ไฟล์ใหม่ ให้กลับมาเป็นแบบ UTF-8

6. พบว่าข้อความส่วนมากกลับมาเป็นตัวภาษาไทยแล้ว แต่จะยังมี tag คงเหลืออยู่
ซึ่งก็ยังพอกลับมาตามแก้เองได้แล้ว

...

ลองเอาไปใช้ดูครับ
ถ้าใครมีวิธีแปลงแบบที่เนียนกว่านี้ก็ลองบอกกันเข้ามาได้นะครับ.

Ads

 

Blog ของเพื่อนๆผมเองครับ :)

© 2011 AMPMIE152. ขับเคลื่อนโดย Blogger.

จำนวนการดูหน้าเว็บรวม

Google Analytic