Vim에서 cp1250 인코딩에 일부 중앙 유럽 문자가 있습니다. 으로 인코딩을 변경하면 인코딩 = utf-8으로 설정하면 <d0>
등과 같이 표시됩니다. 어떻게하면 그 문자를 전체 파일로 대체 할 수 있습니까? 예를 들어,?Vim에서 cp1250 특정 문자를 utf-8로 대체하는 방법
1
A
답변
1
encoding
을 파일의 인코딩 값으로 설정하고 termencoding
을 UTF-8로 설정할 수 있습니다. The vim mbyte documentation을 참조하십시오.
2
iconv()
기능이 유용 할 수 있습니다 :
iconv({expr}, {from}, {to}) *iconv()*
The result is a String, which is the text {expr} converted
from encoding {from} to encoding {to}.
When the conversion fails an empty string is returned.
The encoding names are whatever the iconv() library function
can accept, see ":!man 3 iconv".
Most conversions require Vim to be compiled with the |+iconv|
feature. Otherwise only UTF-8 to latin1 conversion and back
can be done.
This can be used to display messages with special characters,
no matter what 'encoding' is set to. Write the message in
UTF-8 and use:
echo iconv(utf8_str, "utf-8", &enc)
Note that Vim uses UTF-8 for all Unicode encodings, conversion
from/to UCS-2 is automatically changed to use UTF-8. You
cannot use UCS-2 in a string anyway, because of the NUL bytes.
{only available when compiled with the +multi_byte feature}
3
sidyll 말했듯이, 당신 해야 정말 목적으로 사용의 iconv. Iconv는 물건을 알고있다. 그것은 털이 많은 인코딩, 온순한 코드 포인트, 카타카나, 표준화되지 않은, 정규형, 합성, 비 - 스페이스 문자 및 나머지를 모두 알고 있습니다.
:%!iconv -f cp1250 -t utf-8
:%!iconv --from-code cp1250 --to-code utf-8
이하 전체 버퍼를 필터링한다. 해야한다면
:he xxd
원하는 경우 버퍼로드/저장시 자동으로 인코딩하는 방법에 대한 샘플을 얻을 수 있습니다.
iconv -l
은 내 시스템에있는 많은 (약 1168 개) 인코딩을 허용하거나 알고 있습니다.
해피 해킹!
관련 문제
- 1. SQL 기능을 대체하는 방법 단일 문자를 대체하는
- 2. UCS2/HexEncoded 문자를 PHP에서 UTF8로
- 3. 파이썬 - 모든 비 문자를 제거하고 밑줄로 대체하는 효율적인 방법
- 4. MySQL에서 숫자가 아닌 문자를 대체하는 방법은 무엇입니까?
- 5. 파이썬 캡처와 숫자 문자를 대체하는 방법은 무엇입니까?
- 6. PHP에서 고정 위치의 문자를 대체하는 방법은 무엇입니까?
- 7. MySQL에서 Latin1에서 utf8로 변환
- 8. vim에서 특정 열의 배경색 변경
- 9. 중국어 간체 GB 2312 텍스트 문자를 UTF8로 변환
- 10. vim에서 다이아몬드 문자 단축키하는 방법
- 11. 특정 문자를 무시하고 문자열을 읽는 방법
- 12. urlencode : 쉼표 같은 특정 문자를 제거하는 방법?
- 13. 공백으로 하나만 남겨 두는 문자를 여러 번 대체하는 정규식
- 14. 문자를 특정 너비로 제한
- 15. 대시와 공백을 대체하는 방법
- 16. PhoneWindowManager를 대체하는 방법
- 17. UITabBar를 UIToolBar로 대체하는 방법?
- 18. '공용'특권을 대체하는 방법
- 19. nginx 오류를 대체하는 방법
- 20. 특정 문자열이 SQL에서 발견 될 때 값을 대체하는 방법
- 21. vim에서 신호음을 울리는 방법
- 22. vim에서 buf를 종료하는 방법
- 23. XML에서 불법 문자를 처리하는 방법
- 24. 특정 문자 주위의 공백을 대체하는 방법은 무엇입니까?
- 25. vim에서 SuperTab 플러그인을 활성화하는 방법
- 26. Vim에서 특정 동작을 반복하는 방법은 무엇입니까?
- 27. 루비로 ANSI를 UTF8로 변환
- 28. 바이트 배열에서 UTF8로 CString
- 29. UTF8로 전자 메일 인코딩
- 30. JavaScript 특정 문자를 확인하는 정규식
또는 iconv external 명령을 사용할 수 있습니다. – sehe
@sehe : 아, 훨씬 좋습니다! 특히 전체 버퍼를 변환해야하는 경우. @ 루크, 확인, 당신은 약간의 빔 필터 ('!') 마술이 필요합니다. @sehe, 왜 우리가 투표를 할 수 있도록 대답으로 게시하지 않으시겠습니까? – sidyll
솔직히 말해서 필터 프로그램을 호출하는 '단순함'이 마음에 들지만 내장 함수를 많이 사용하는 것에 대한 제안이 마음에 들었습니다! 나는 그것이 거기에 있었다는 것을 몰랐다. – sehe