여러 프로젝트를 하다보면 인코딩 때문에 애 먹은적이 한두번이 아니다.
특히나 표준 인코딩의 utf-8을 사용하는데 한글이 적용될 때는 euc-kr 등 다른 인코딩이 적용된 프로젝트나 파일등을 볼 수 있다.
이 포스팅에서는 utf-8 환경에서 euc-kr 파일이 열었을 때로 접근할 것이다.
양방향으로 조정할 수는 있지만 처음에는 혼동하는 경우가 있기에 한 방향으로 설명한다.
업무 효율적인 면에서도 아주 중요한 포인트가 될 수 있기에 습득하는게 유용한 기술이라 본다.
필자는 리눅스 상에서 vim 에디터를 자주 들여다 보기에 vim 위주로 정리하였다.
1. vim이나 touch 명령어로 "test"파일을 만들어보자.
vim test
2. test의 현재 인코딩 상태를 파악해보자.
아래 코드에서 "charset=binary"라고 보일것이다. 아무것도 안잡혀있어서 그런거니 넘어가도 좋다.
file -bi test 예시) inode/x-empty; charset=binary
3. test 파일에 한글 "안녕하세요"를 저장하고 다시 파일 인코딩을 확인하자.
아래 코드에서 "charset=utf-8"라고 보일것이다. 사용자 locale에 따라 저장되는 것이다.
(자세히는 locale 정보를 vim설정에 담아서 사용하는것이다.)
file -bi test text/plain; charset=utf-8
4. 강제로 euc-kr로 인코딩
아래 명령어를 주면 파일 인코딩이 변할것이다.
(주의) iconv와 file의 명령어에서 인코딩 표기가 다른것을 눈치 챘을 것이다. 두 명령어의 인코딩 표기 기준이 다른것 뿐이고, 두 인코딩의 표준은 동일해서 같은 맥락이라고 보면된다. 결론은 같다는 말이다.
iconv -c -f utf8 -t euc-kr test -o test file -bi test text/plain; charset=iso-8859-1
5. 깨진 한글을 vim을 통해서 확인
자! 여기서 부터 실제 상황이라고 보면 된다. 프로젝트 파일을 받았는데 내 환경은 "utf-8"이고 파일은 "euc-kr"인 상황이라고 가정해보자. vim 에디터를 통해서 확인해보니 깨진것을 볼 수 있을 것이다.
파일은 "euc-kr"인 상태로 저장되어있고 "utf-8" 인코딩 설정을 가진 vim으로 열어서 확인해보니 한글이 깨져 있는 것이다.
그래서 "utf-8"로 보던 vim에서는 잠깐 euc-kr로 보려고 한다.
아래 vim 명령어를 주목하자.
¾È³çÇϼ¼¿ä :e ++enc=euc-kr
위 명령라인모드(command line mode)에서 ":e ++enc=euc-kr"라고 치면 아래와 같이 인코딩이 될것이다.
다만, 파일은 자체 인코딩 설정은 변하지 않는다.
안녕하세요 :e ++enc=euc-kr
6. 파일 인코딩 변환
vim 에디터에서 깨진 한글을 복구하여 보고있는데 파일을 닫았다가 다시 열면 깨져있는 것을 볼 수 있을 것이다. 이를 방지하기 위해
아래와 같이 ":set fileencoding=utf-8" 명령어를 주고 vim 파일을 저장하면 된다. 또는 iconv 명령어로 주어도 된다.
안녕하세요 :set fileencoding=utf-8
또는
iconv -c -f euc-kr -t utf8 test -o test
'리눅스 > Vim' 카테고리의 다른 글
vi 파일 인코딩 확인 (0) | 2022.10.25 |
---|---|
[에디터] Vi / Vim 단축키 모음 (0) | 2020.02.04 |