มาดูยูทิลิตี้ iconv ของ Linux ในคอนโซลเทอร์มินัลกันเถอะ ดังนั้นเราจึงดำเนินการคำสั่ง 'iconv' ด้วยแฟล็ก '-l' เพื่อแสดงชุดอักขระที่เข้ารหัสที่รู้จักและใช้มากที่สุดทั้งหมดบนหน้าจอเทอร์มินัลของเรา มันจะแสดงชุดอักขระที่เข้ารหัสพร้อมกับนามแฝง คุณสามารถดูรายการชุดอักขระที่มีรหัสยาวได้หลังจากเลื่อนลงมาเล็กน้อย
ถึงเวลาเริ่มต้นใช้งานคำสั่ง iconv ใน Linux อันดับแรก เราต้องการไฟล์ประเภทต่างๆ ในระบบของเราเพื่อแปลงไฟล์ประเภทหนึ่งเป็นอีกประเภทหนึ่ง ดังนั้นเราจึงใช้แบบสอบถาม 'สัมผัส' ที่คอนโซลเทอร์มินัลเพื่อสร้างไฟล์ที่แตกต่างกันสามไฟล์ ได้แก่ ประเภท Java ประเภท C และประเภทข้อความ รายการเนื้อหาไดเรกทอรีปัจจุบัน คุณจะพบไฟล์ที่สร้างขึ้นใหม่ในนั้น
หลังจากนี้ เราจะดูประเภทไฟล์แต่ละไฟล์แยกกันโดยใช้แบบสอบถาม 'ไฟล์' พร้อมกับชื่อของแต่ละไฟล์ แบบสอบถามนี้ต้องใช้ตัวเลือก '-I' เพื่อแสดงประเภทของอักขระการเข้ารหัสที่กำหนดสำหรับแต่ละไฟล์แยกกัน หากคุณลืมใช้ตัวเลือก '-I' ให้ใช้แฟล็ก '—mime' แทน ทั้งแฟล็ก '-I' และ '—mime' ทำงานเหมือนกัน
หลังจากดำเนินการตามคำสั่ง 'ไฟล์' สำหรับไฟล์ประเภท 'txt' เราก็ได้รับการเข้ารหัสประเภทอักขระ 'US-ASCII' ขณะใช้คำสั่งเดียวกันสำหรับไฟล์ Java และ C แสดงว่าทั้งสองไฟล์มีการเข้ารหัสประเภทอักขระ 'BINARY' นอกจากนั้น คำแนะนำนี้แสดงว่าไฟล์ทั้งสามนี้ว่างเปล่า
ตอนนี้ เราจะสาธิตการใช้คำสั่ง iconv ที่คอนโซลเพื่อแปลงไฟล์การเข้ารหัสชุดอักขระเฉพาะไปเป็นการเข้ารหัสชุดอักขระอื่น ก่อนหน้านั้น เราต้องเพิ่มโค้ดหรือข้อมูลบางส่วนลงในไฟล์ของเรา ดังนั้นเราจึงได้เพิ่มโค้ด Java ในไฟล์ 'text.java', โค้ด C ภายในไฟล์ 'text.c' และเพิ่มข้อมูลข้อความภายในไฟล์ 'test.txt' แบบสอบถาม cat ถูกใช้ที่นี่เพื่อแสดงเนื้อหาของทั้งสามไฟล์ดังที่แสดงด้านล่าง:
ตอนนี้เราได้เพิ่มข้อมูลเรียบร้อยแล้ว เราจะเห็นการเข้ารหัสชุดอักขระของไฟล์เหล่านี้อีกครั้ง ดังนั้นเราจึงได้ลองใช้คำสั่งไฟล์เดียวกันภายในเชลล์ด้วยแฟล็ก '-I' และชื่อไฟล์ เช่น test.txt, test.java และ test.c การรันคำสั่งทั้งสามนี้แยกกันสำหรับไฟล์ทั้งสามนั้นแสดงว่าการเข้ารหัสชุดอักขระได้รับการอัปเดตสำหรับไฟล์ Java และ C ในขณะที่ไฟล์ข้อความยังคงเหมือนเดิม เช่น US-ASCII การเข้ารหัสไฟล์ Java และ C ก่อนหน้านี้เป็น 'ไบนารี' ตอนนี้เป็น “US-ASCII” นอกจากนี้ยังแสดงให้เห็นว่าไฟล์ข้อความมีข้อมูลข้อความธรรมดาในขณะที่ไฟล์โค้ดอีกสองไฟล์มีสคริปต์เป็นเนื้อหา
ถึงเวลาทำงานจริงที่จำเป็นสำหรับบทความนี้ เช่น แปลงการเข้ารหัสหนึ่งเป็นอีกอันโดยใช้คำสั่ง iconv ในเชลล์ ดังนั้นเราจึงใช้คำสั่ง 'iconv' ภายในเชลล์เทอร์มินัลด้วยสิทธิ์ 'sudo' คำสั่งนี้ใช้ตัวเลือก '-f' ย่อมาจาก 'from' และตัวเลือก '-t' ย่อมาจาก 'to' นั่นคือจากการเข้ารหัสหนึ่งไปอีกอันหนึ่ง
หลังจากตัวเลือก '-f' คุณต้องระบุการเข้ารหัสที่ไฟล์ของคุณมีอยู่แล้ว เช่น US-ASCII ในขณะที่อยู่หลังตัวเลือก '-t' คุณต้องระบุการเข้ารหัสที่คุณต้องการแทนที่ด้วยการเข้ารหัสแบบเก่า เช่น UNICODE คุณต้องระบุชื่อไฟล์ที่ใช้เป็นแหล่งที่มาด้วยตัวเลือก –o เพื่อสร้างอิมเมจออบเจ็กต์ รูปภาพวัตถุจะเป็นไฟล์อื่น เช่น 'new.c' ซึ่งเป็นประเภทเดียวกัน แต่มีการเข้ารหัสใหม่และข้อมูลเดียวกัน
หลังจากดำเนินการตามคำสั่งต่อไปนี้ คุณจะได้รับไฟล์ใหม่ในไดเร็กทอรีเดียวกัน นั่นคือ ตามคำสั่ง 'ls' ตอนนี้ เราจะตรวจสอบการเข้ารหัสชุดอักขระของไฟล์ใหม่ที่สร้างขึ้นโดยใช้คำสั่ง iconv เราจะใช้คำสั่ง 'ไฟล์' อีกครั้งด้วยตัวเลือก '-I' และชื่อไฟล์ใหม่ เช่น new.c.
คุณจะเห็นว่าชุดอักขระสำหรับไฟล์ใหม่นี้แตกต่างจากชุดอักขระของไฟล์เก่า นั่นคือ ชุดอักขระ UTF-16LE เนื่องจากเราได้แปลการเข้ารหัส US-ASCII เป็นการเข้ารหัส UNICODE โดยใช้คำสั่ง iconv สำหรับไฟล์ new.c ของเรา แบบสอบถาม 'cat' แสดงรหัส C เดียวกันภายในไฟล์ แต่เริ่มต้นด้วยอักขระ Unicode บางตัวดังที่แสดงแล้ว
ในทำนองเดียวกัน เราจะเปลี่ยนการเข้ารหัสไฟล์ข้อความ test.txt คำแนะนำไฟล์แสดงให้เห็นว่ามีการเข้ารหัสชุดอักขระ US-ASCII มีการใช้คำสั่ง iconv กับรูปแบบเดียวกันในการแปลงการเข้ารหัสไฟล์ test.txt จาก US-ASCII เป็น TURKISH8 คุณจะเห็นว่าไม่เปลี่ยน US-ASCII เป็นภาษาตุรกี
หลังจากนี้ เราใช้คำสั่งเดียวกันเพื่อให้ครอบคลุมการเข้ารหัสชุดอักขระ US-ASCII ถึง UTF-32 สำหรับไฟล์เดียวกัน ครั้งนี้มันได้ผล เนื่องจากบางครั้งอาจมีปัญหาในการแปลงชุดการเข้ารหัสชุดหนึ่งเป็นชุดอื่น หรือการเข้ารหัสอื่นๆ อาจไม่รองรับ
บทสรุป
บทความนี้กล่าวถึงวิธีใช้คำสั่ง iconv Linux เพื่อแปลงชุดอักขระเข้ารหัสหนึ่งชุดเป็นอีกชุดหนึ่งโดยใช้นามแฝง ในลักษณะนี้ เราต้องสร้างไฟล์บางประเภทที่แตกต่างกัน