Jestem przyzwyczajony do używania vima do modyfikowania zakończeń linii pliku:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
Czy można zastosować podobny proces do zmiany kodowania Unicode pliku? Próbuję następujących, które nie działają:
$ 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
Widziałem, jak ktoś powiedział , że może „ustawić fileencoding = utf-8, a następnie zaktualizować i zapisać plik, i to działa”, ale wydaje mi się, że czegoś mi brakuje, w przeciwnym razie był zdezorientowany. Nie wiem, co miał na myśli przez „następnie zaktualizuj”.
Zauważ, że istnieje różnica między
i
W pierwszym przypadku zmienisz kodowanie wyjściowe wyświetlane w terminalu. W drugim przypadku zmienisz kodowanie wyjściowe zapisanego pliku.
źródło
set encoding
, a mimo to strony pokazywały zniekształcone znaki, które były w porządku jako iso-8859-1. przy użyciuset fileencoding
pokazał ładny „Latin1”Chociaż używanie vima do robienia tego jest całkowicie możliwe, dlaczego po prostu nie używasz iconv? Mam na myśli - ładowanie edytora tekstowego tylko w celu konwersji kodowania wygląda jak użycie zbyt dużego młotka dla zbyt małego gwoździa.
Właśnie:
I jesteś skończony.
źródło
Podobnie jak twoje kroki, ustawienie kodowania plików powinno działać. Chciałbym jednak dodać jeden „zestaw bomb”, aby pomóc redaktorowi uznać plik za UTF8.
źródło
bomb
albobom
, i to może byćunset
? EDYCJA : Tak, możesz go usunąć za pomocąset nobomb
.bomb
(z ab).:set bomb
jest włączony, jeśli:set fenc=utf-8
.. patrz:he bomb
Przydatna może być zmiana kodowania bezpośrednio w wierszu poleceń przed odczytaniem pliku:
Zobacz począwszy ,
--cmd
.źródło
'single quotes'
są potrzebne tylko do ucieczki od wszystkich meta znaków, co zwykle nie jest tym, czego chcesz.