Saya terbiasa menggunakan vim untuk memodifikasi akhir baris file:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Apakah mungkin menggunakan proses serupa untuk mengubah pengkodean unicode file? Saya mencoba yang berikut, yang tidak berfungsi:
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
Saya melihat seseorang mengatakan bahwa dia dapat "mengatur fileencoding = utf-8, kemudian memperbarui dan menulis file, dan itu berfungsi," tetapi saya sepertinya kehilangan sesuatu, atau dia bingung. Saya tidak tahu apa yang dia maksud dengan "lalu perbarui."
Perhatikan bahwa ada perbedaan di antara keduanya
dan
Dalam kasus pertama, Anda akan mengubah pengkodean keluaran yang ditampilkan di terminal. Dalam kasus kedua, Anda akan mengubah pengkodean output dari file yang ditulis.
sumber
set encoding
, dan masih halaman-halamannya menunjukkan karakter-karakter yang rusak yang tidak masalah seperti iso-8859-1. menggunakanset fileencoding
menunjukkan cukup 'Latin1'Meskipun menggunakan vim untuk melakukannya sangat mungkin, mengapa Anda tidak menggunakan ikonv saja? Maksud saya - memuat editor teks hanya untuk melakukan konversi pengkodean sepertinya menggunakan palu yang terlalu besar untuk paku yang terlalu kecil.
Hanya:
Dan kamu sudah selesai.
sumber
Sama seperti langkah Anda, pengaturan fileencoding harus bekerja Namun, saya ingin menambahkan satu "set bom" untuk membantu editor menganggap file sebagai UTF8.
sumber
bomb
ataubom
dapatkah itu terjadiunset
? EDIT : Ya, Anda bisa menghapusnya viaset nobomb
.bomb
(dengan ab).:set bomb
dihidupkan jika:set fenc=utf-8
.. lihat:he bomb
Mungkin bermanfaat untuk mengubah penyandian hanya pada baris perintah sebelum file dibaca:
Lihat mulai ,
--cmd
.sumber
'single quotes'
hanya diperlukan untuk melarikan diri semua karakter meta, yang biasanya bukan yang Anda inginkan.