Tôi thường xuyên gặp các tệp văn bản (chẳng hạn như các tệp phụ đề bằng ngôn ngữ mẹ đẻ của tôi, tiếng Ba Tư ) với các vấn đề mã hóa ký tự. Các tệp này được tạo trên Windows và được lưu với mã hóa không phù hợp (dường như là ANSI), trông có vẻ vô nghĩa và không thể đọc được, như thế này:
Trong Windows, người ta có thể khắc phục điều này một cách dễ dàng bằng Notepad ++ để chuyển đổi mã hóa thành UTF-8, như dưới đây:
Và kết quả chính xác có thể đọc được là như thế này:
Tôi đã tìm kiếm rất nhiều giải pháp tương tự trên GNU / Linux, nhưng tiếc là các giải pháp được đề xuất (ví dụ câu hỏi này ) không hoạt động. Trên hết, tôi đã thấy mọi người đề nghị iconv
và recode
tôi không gặp may mắn với những công cụ này. Tôi đã thử nghiệm nhiều lệnh, bao gồm cả các lệnh sau, và tất cả đều thất bại:
$ 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
Không ai trong số này làm việc!
Tôi đang sử dụng Ubuntu-14.04 và tôi đang tìm kiếm một giải pháp đơn giản (GUI hoặc CLI) hoạt động giống như Notepad ++.
Một khía cạnh quan trọng của việc "đơn giản" là người dùng không bắt buộc phải xác định mã hóa nguồn; thay vào đó, mã hóa nguồn phải được công cụ tự động phát hiện và chỉ mã hóa đích được cung cấp bởi người dùng. Nhưng tuy nhiên, tôi cũng sẽ vui mừng khi biết về một giải pháp hoạt động đòi hỏi phải cung cấp mã hóa nguồn.
Nếu ai đó cần một trường hợp thử nghiệm để kiểm tra các giải pháp khác nhau, ví dụ trên có thể truy cập được thông qua liên kết này .
iso-639
nhưng dường như không có sẵn trong một iconv
hoặc recode
. Ít nhất, tôi không thấy nó trong đầu ra của iconv -l
.
vim
nhưng nó không hoạt động.
vim '+set fileencoding=utf-8' '+wq' file.txt
.