iconv Command trong Linux

Iconv Command Trong Linux



Đảm bảo cập nhật máy Linux của bạn trước khi đi sâu vào thực hiện bài viết này. Để cập nhật, hãy sử dụng tiện ích “apt” của Linux với từ khóa “update” và chạy hướng dẫn này bằng các đặc quyền “sudo”. Mặc dù chúng tôi có thể bắt đầu triển khai ngay bây giờ, nhưng chúng tôi cũng muốn nâng cấp hệ thống này, tức là nâng cấp sẽ giảm nguy cơ xảy ra lỗi và hệ thống sẽ có thể giải quyết các vấn đề chính xác hơn. Do đó, hãy sử dụng tiện ích 'apt' trong hướng dẫn 'nâng cấp'.

Bây giờ chúng ta hãy xem tiện ích iconv của Linux trong bảng điều khiển đầu cuối của nó. Vì vậy, chúng tôi đã thực hiện lệnh “iconv” với cờ “-l” để hiển thị tất cả các bộ ký tự được mã hóa đã biết và được sử dụng nhiều nhất trên màn hình đầu cuối của chúng tôi. Nó sẽ hiển thị các bộ ký tự được mã hóa cùng với bí danh của chúng. Bạn có thể thấy một danh sách dài các bộ ký tự được mã hóa sau khi cuộn xuống một chút.







Bây giờ, đã đến lúc bắt đầu triển khai lệnh iconv trong Linux. Đầu tiên, chúng ta cần các loại tệp khác nhau trong hệ thống của mình để chuyển đổi một loại tệp này sang một loại tệp khác. Do đó, chúng tôi đang sử dụng truy vấn “chạm” tại thiết bị đầu cuối bảng điều khiển để tạo ba tệp khác nhau, tức là loại Java, loại C và loại văn bản. Liệt kê nội dung thư mục hiện tại, bạn sẽ tìm thấy các tệp mới được tạo trong đó.



Sau đó, chúng tôi sẽ xem xét loại của từng tệp riêng biệt bằng cách sử dụng truy vấn “tệp” cùng với tên của mỗi tệp. Truy vấn này cần tùy chọn “-I” để hiển thị loại ký tự mã hóa cho từng tệp riêng biệt. Nếu bạn quên sử dụng tùy chọn “-I”, hãy sử dụng cờ “—mime” để thay thế. Cả cờ “-I” và “—mime” đều hoạt động giống nhau.



Bây giờ, sau khi thực hiện lệnh “tệp” cho tệp loại “txt”, chúng tôi đã nhận được mã hóa kiểu ký tự “US-ASCII”. Trong khi sử dụng cùng một hướng dẫn cho các tệp Java và C, nó cho thấy rằng cả hai tệp đều chứa mã hóa kiểu ký tự “BINARY”. Cùng với đó, hướng dẫn này cho thấy rằng cả ba tệp này đều trống.





Bây giờ, chúng tôi sẽ minh họa việc sử dụng lệnh iconv tại bảng điều khiển để chuyển đổi một tệp mã hóa bộ ký tự cụ thể sang một mã hóa bộ ký tự khác. Trước đó, chúng ta phải thêm một số mã hoặc dữ liệu vào tệp của mình. Do đó, chúng tôi đã thêm mã Java trong tệp “text.java”, mã C trong tệp “text.c” và thêm dữ liệu văn bản trong tệp “test.txt”. Truy vấn mèo đã được sử dụng ở đây để hiển thị nội dung của cả ba tệp, như được trình bày bên dưới:



Bây giờ chúng tôi đã thêm dữ liệu thành công, chúng tôi sẽ thấy mã hóa bộ ký tự của các tệp này một lần nữa. Vì vậy, chúng tôi đã thử hướng dẫn tệp tương tự trong trình bao với cờ “-I” và tên tệp, tức là test.txt, test.java và test.c. Chạy riêng ba hướng dẫn này cho cả ba tệp cho thấy rằng mã hóa bộ ký tự đã được cập nhật cho các tệp Java và C trong khi vẫn giữ nguyên cho tệp văn bản, tức là US-ASCII. Mã hóa của các tệp Java và C trước đây là 'nhị phân'; bây giờ, đó là “US-ASCII”. Ngoài ra, nó cho thấy rằng tệp văn bản chứa dữ liệu văn bản thuần túy trong khi hai tệp mã khác chứa các tập lệnh dưới dạng nội dung.

Đã đến lúc thực hiện tác vụ thực tế cần thiết cho bài viết này, tức là chuyển đổi một mã hóa này sang một mã hóa khác bằng cách sử dụng lệnh iconv trong shell. Do đó, chúng tôi đã sử dụng lệnh “iconv” trong shell terminal với các đặc quyền “sudo”. Lệnh này sử dụng tùy chọn “-f” là viết tắt của “from” và tùy chọn “-t” là viết tắt của “to”, tức là từ mã hóa này sang mã hóa khác.

Sau tùy chọn “-f”, bạn phải chỉ định mã hóa tệp của bạn đã có, tức là US-ASCII. Trong khi sau tùy chọn “-t”, bạn phải chỉ định kiểu mã hóa bạn muốn thay thế bằng kiểu mã hóa cũ, tức là UNICODE. Bạn phải chỉ định tên của tệp được sử dụng làm nguồn với tùy chọn –o để tạo hình ảnh đối tượng của nó. Hình ảnh đối tượng sẽ là một tệp khác, tức là “new.c”, cùng loại nhưng có mã hóa mới và cùng một dữ liệu.

Sau khi thực hiện hướng dẫn sau, bạn sẽ nhận được một tệp mới trong cùng một thư mục, tức là theo truy vấn “ls”. Bây giờ, chúng tôi sẽ kiểm tra mã hóa bộ ký tự của một tệp mới được tạo bằng cách sử dụng hướng dẫn iconv. Chúng tôi sẽ sử dụng lại lệnh “tệp” với tùy chọn “I” và tên tệp mới, tức là new.c.

Bạn sẽ thấy rằng bộ ký tự cho tệp mới này khác với bộ ký tự của tệp cũ, tức là bộ ký tự UTF-16LE. Điều này là do chúng tôi đã dịch mã US-ASCII sang mã hóa UNICODE bằng cách sử dụng hướng dẫn iconv cho tệp new.c của chúng tôi. Truy vấn “cat” hiển thị cùng một mã C trong tệp nhưng bắt đầu bằng một số ký tự Unicode, như đã trình bày.

Theo cách tương tự, chúng tôi sẽ thay đổi mã hóa của tệp văn bản test.txt. Hướng dẫn tệp cho thấy nó có mã hóa bộ ký tự US-ASCII. Lệnh iconv đã được sử dụng với định dạng tương tự để chuyển đổi mã hóa của tệp test.txt từ US-ASCII sang TURKISH8. Bạn sẽ thấy rằng nó không thay đổi US-ASCII thành tiếng Thổ Nhĩ Kỳ.

Sau đó, chúng tôi sử dụng lệnh tương tự để bao gồm mã hóa bộ ký tự US-ASCII đến UTF-32 cho cùng một tệp. Lần này, nó hoạt động. Điều này là do đôi khi có thể xảy ra sự cố khi chuyển đổi bộ mã hóa này sang bộ mã hóa khác hoặc bộ mã hóa khác có thể không hỗ trợ bộ mã hóa đó.

Sự kết luận

Bài viết này thảo luận về cách sử dụng các hướng dẫn của iconv Linux để chuyển đổi một bộ ký tự mã hóa này sang một bộ ký tự mã hóa khác bằng cách sử dụng bí danh của chúng. Theo cách này, chúng tôi phải tạo một số tệp thuộc các loại khác nhau.