답변:
소스 웹 페이지의 내용이 지나치게 재 포맷되었습니다. 텍스트는 의심 할 여지없이 사용했는데 (직선) (ASCII 작은 따옴표 39/0x27
, U+0027
) 대신 곱슬 작은 따옴표 ( U+2018
하고 U+2019
있으며, 0x91 and 0x92
또한 MS-ANSI와 WINDOWS-1252로 알려진 CP1252 (에; Windows에서 공통의 8 비트 인코딩)) .
Vim은 16 진수 코드를 보여줍니다 .Vim이 사용하는 인코딩 (아마 UTF-8)에는 유효하지 않기 때문입니다. 파일에 이미 저장된 텍스트를 편집하는 경우 :e ++enc=cp1252
;를 사용 하여 파일을 CP1252로 다시로드 할 수 있습니다 . 이렇게하면 중괄호가 표시됩니다. 그러나 CP1252로 다시로드 할 실제 이유는 없으며 0x91
and 0x92
문자를 삭제하고 작은 따옴표로 바꿉니다.
:e ++enc=cp1252
:e ++enc=cp1252
있습니까? 명령 줄에서 MS 단어 문자가 포함 된 파일을 vi로 실행하려면 vi를 열고 :e
명령으로 파일을로드하는 대신 한 단계로 수행 할 수 있으면 좋을 것입니다.
vim --cmd 'set fileencodings=cp1252' /path/to/file
— 명령이 일반보다 먼저 실행 .vimrc
되고 fileencodings
옵션을 설정하여 (끝을 참고할 s
수도 있고 더 짧은 이름을 사용할 수도 fencs
있음) Vim은 파일을로드 할 때 CP1252 만 시도합니다. 이는 해당 파일의 일회성 편집에는 효과가 있지만 Vim의 해당 인스턴스를 사용하여 다른 인코딩으로 파일을 편집하려는 경우 문제가 발생할 수 있습니다.
vim -c"set fencs" /path/to/file
91과 92는 MS Windows 기본 버전 인 latin1 / ISO-8859-1 인코딩의 열기 및 닫기 중괄호 (작은 따옴표)에 대한 16 진 코드이며,보다 구체적으로 cp1252 / Windows-1252 (cp는 코드를 나타냄) 페이지).
이러한 문자는 "Smart Quotes"기능의 일부로 Word 문서 / Outlook 전자 메일의 내용을 복사하는 사람들이 가장 자주 삽입합니다. 이 코드 페이지의 다른 문제 문자는 16 진수 93/94이며 큰 따옴표, 글 머리 기호 (•) 및 OE 합자 (– 및 Œ)입니다. cp1252 의 녹색으로 강조 표시된 Wikipeda 페이지 에서 동일한 코드로 ISO-8859-1 또는 UTF-8에 직접 맵핑되지 않는 "문제점"의 전체 목록을 볼 수 있습니다 .
파일을 올바른 인코딩으로 열려면 ++ enc = cp1252 옵션을 : e 명령에 사용하십시오.
:e ++enc=1252 filename.txt
Vim의 특정 잘못된 16 진 코드를 대체 명령 (: s)과 코드 대체 중 하나로 바꿀 수 있습니다.
\d123 decimal number of character
\o40 octal number of character up to 0377
\x20 hexadecimal number of character up to 0xff
\u20AC hex. number of multibyte character up to 0xffff
\U1234 hex. number of multibyte character up to 0xffffffff
16 진수 91/92 문자를 변경하려면 다음을 수행해야합니다.
:%s/[\x91\x92]/'/g
sed -i "s/[\x91\x92]/\'/g" *.txt
해결했지만 작동하지 않았습니다.
perl -p -i -e "s/[\x91\x92]/'/g" *.txt
sed -i "s/\x92/'/g"
나를 위해 일했다.
iconv
열기 전에 텍스트 파일을 CP1252에서 UTF-8로 변환하는 데 사용하십시오 .
iconv -f cp1252 -t utf8 inputfile.csv > outputfile.csv
Mac OS에서는 다음을 사용하십시오.
iconv -f cp1252 -t UTF8-MAC inputfile.csv > outputfile.csv
실제로 16 진 91과 92를 나타내며, Windows 코드 페이지에서는 작은 따옴표 ( '및'-Alt-0145 및 Alt-0146)를 닫고 닫는 중괄호입니다.
다음 검색 / 바꾸기를 시도하십시오.
:s%/\<9[12]\>/'/g