Treść na Twojej stronie źródłowej została nadmiernie sformatowana. Tekst został niewątpliwie ma zastosowania (prosta), apostrofów (ASCII 39/0x27
, U+0027
) zamiast klamrowych apostrofów ( U+2018
i U+2019
, które są 0x91 and 0x92
w CP1252 (znany również jako MS-ANSI i windows-1252; kodującego wspólny 8-bitowy Windows)) .
Vim pokazuje ci kody szesnastkowe, ponieważ nie są poprawne w jakimkolwiek kodowaniu, którego używa Vim (prawdopodobnie UTF-8). Jeśli edytujesz tekst, który został już zapisany w pliku, możesz ponownie załadować plik jako CP1252 za pomocą :e ++enc=cp1252
; to powinno sprawić, że nawiasy będą widoczne. Ale nie ma żadnego powodu, aby przeładować go jako CP1252, po prostu usunąć 0x91
i 0x92
znaków i zastąpić je apostrofami.
:e ++enc=cp1252
:e ++enc=cp1252
? Jeśli chcę vi z wiersza polecenia pliku zawierającego znaki słowne MS, byłoby miło móc to zrobić w jednym kroku, zamiast otwierać vi, a następnie ładować plik za pomocą:e
poleceniavim --cmd 'set fileencodings=cp1252' /path/to/file
- Polecenie jest uruchamiane przed normalnym.vimrc
i ustawiafileencodings
opcję (zwróć uwagę na zakończenies
; możesz także użyć krótszej nazwyfencs
), aby Vim spróbował CP1252 tylko podczas ładowania plików. Powinno to działać w przypadku jednorazowej edycji takich plików, ale może powodować komplikacje, jeśli chcesz użyć tego wystąpienia Vima do edycji plików z innymi kodowaniami.vim -c"set fencs" /path/to/file
91 i 92 są kodami szesnastkowymi otwartego i zamkniętego kędzierzawego apostrofu (pojedynczy cudzysłów) w domyślnej wersji MS Windows kodowania latin1 / ISO-8859-1, która jest bardziej szczegółowo nazywana cp1252 / Windows-1252 (gdzie cp oznacza kod strona).
Te znaki są najczęściej wstawiane przez osoby kopiujące treści z dokumentów Word / wiadomości e-mail programu Outlook w ramach funkcji „Inteligentne cytaty”. Inne znaki problemowe na tej stronie kodowej to hex 93/94, które otwierają i zamykają podwójne cudzysłowy, punktor (•) i ligatura OE (œ i Œ). Możesz zobaczyć pełną listę „znaków problemowych”, które nie mapują bezpośrednio na ISO-8859-1 lub UTF-8 z tym samym kodem, na stronie Wikipeda dla cp1252 podświetlonej na zielono.
Jeśli wszystko, co chcesz, to otworzyć plik w prawidłowym kodowaniu, użyj opcji ++ enc = cp1252 dla polecenia: e:
Możesz wymienić konkretny zły kod szesnastkowy w Vimie za pomocą polecenia substitute (: s) i jednej z podstawień kodu:
Aby zmienić szesnastkowe 91/92 znaki, musisz:
źródło
sed -i "s/[\x91\x92]/\'/g" *.txt
ale to nie zadziałało.perl -p -i -e "s/[\x91\x92]/'/g" *.txt
sed -i "s/\x92/'/g"
pracował dla mnie.Służy
iconv
do konwersji pliku tekstowego z CP1252 na UTF-8 przed otwarciem.W systemie Mac OS użyj tego:
źródło
W rzeczywistości oznaczają szesnastki 91 i 92, które na stronie kodowej Windows nawijają i zamykają pojedyncze cudzysłowy ('i' - Alt-0145 i Alt-0146).
Spróbuj wyszukać / zamień:
źródło