Я привык использовать vim для изменения концов строк файла:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Можно ли использовать аналогичный процесс для изменения кодировки Unicode файла? Я пытаюсь следующее, которое не работает:
$ 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
Я видел, как кто-то сказал, что он может «установить fileencoding = utf-8, затем обновить и записать файл, и это работает», но мне, кажется, что-то не хватает, иначе он был сбит с толку. Я не знаю, что он имел в виду под «тогда обнови».
Обратите внимание, что есть разница между
и
В первом случае вы измените выходную кодировку, отображаемую в терминале. Во втором случае вы измените выходную кодировку записанного файла.
источник
set encoding
, и все же на страницах были видны искаженные символы, которые были в порядке, как iso-8859-1. использованиеset fileencoding
показало довольно «Latin1»Хотя использование vim делает это совершенно возможным, почему бы вам просто не использовать iconv? Я имею в виду - загрузка текстового редактора просто для преобразования кодировки выглядит как использование слишком большого молотка для слишком маленького гвоздя.
Просто:
И вы сделали.
источник
Как и ваши шаги, настройка fileencoding должна работать. Тем не менее, я хотел бы добавить одну «set бомбу», чтобы помочь редактору рассматривать файл как UTF8.
источник
bomb
или такbom
и может бытьunset
? РЕДАКТИРОВАТЬ : Да, вы можете удалить его черезset nobomb
.bomb
(с AB ).:set bomb
включается, если:set fenc=utf-8
.. см.:he bomb
Может быть полезно изменить кодировку только в командной строке перед чтением файла:
См начиная ,
--cmd
.источник
'single quotes'
нужны только для экранирования всех метасимволов, что обычно не то, что вы хотите.