ฉันมักจะพบไฟล์ข้อความ (เช่นไฟล์คำบรรยายในภาษาพื้นเมืองของฉันเปอร์เซีย ) ที่มีปัญหาการเข้ารหัสอักขระ ไฟล์เหล่านี้ถูกสร้างขึ้นบน Windows และบันทึกด้วยการเข้ารหัสที่ไม่เหมาะสม (ดูเหมือนว่าจะเป็น ANSI) ซึ่งมีลักษณะซึ่งพูดพล่อยๆและอ่านไม่ได้เช่นนี้:
ใน Windows สามารถแก้ไขได้อย่างง่ายดายโดยใช้Notepad ++เพื่อแปลงการเข้ารหัสเป็น UTF-8 ดังนี้
และผลลัพธ์ที่อ่านได้ถูกต้องเป็นเช่นนี้:
ฉันค้นหาโซลูชันที่คล้ายกันจำนวนมากใน GNU / Linux แต่น่าเสียดายที่โซลูชันที่แนะนำ (เช่นคำถามนี้ ) ไม่ทำงาน ที่สำคัญที่สุดฉันได้เห็นคนแนะนำiconv
แล้วrecode
แต่ฉันไม่มีโชคกับเครื่องมือเหล่านี้ ฉันได้ทดสอบคำสั่งมากมายรวมถึงสิ่งต่อไปนี้และทั้งหมดล้มเหลว:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
สิ่งเหล่านี้ไม่ได้ผล!
ฉันกำลังใช้ Ubuntu-14.04 และฉันกำลังมองหาวิธีแก้ไขปัญหาอย่างง่าย (อย่างใดอย่างหนึ่ง GUI หรือ CLI) ที่ทำงานเหมือนกับ Notepad ++
สิ่งสำคัญอย่างหนึ่งของการเป็น"วิ"คือผู้ใช้ไม่จำเป็นต้องตรวจสอบการเข้ารหัสแหล่งที่มา; เครื่องมือควรตรวจจับการเข้ารหัสแหล่งที่มาโดยอัตโนมัติและควรให้การเข้ารหัสเป้าหมายโดยผู้ใช้เท่านั้น แต่อย่างไรก็ตามฉันก็ยินดีที่จะรู้เกี่ยวกับวิธีการทำงานที่ต้องมีการเข้ารหัสแหล่งที่มาที่จะให้
หากใครบางคนต้องการกรณีทดสอบเพื่อตรวจสอบวิธีแก้ไขปัญหาต่าง ๆ ตัวอย่างด้านบนสามารถเข้าถึงได้ผ่านลิงค์นี้
iso-639
แต่ที่ดูเหมือนจะไม่สามารถใช้งานได้ทั้งในหรือiconv
อย่างน้อยผมไม่เห็นมันในการส่งออกของrecode
iconv -l
vim
แต่ไม่ได้ผล
vim '+set fileencoding=utf-8' '+wq' file.txt
.