도움받은 사이트 :
- http://bitsoul.tistory.com/m/150
- https://bash.cyberciti.biz/guide/Logical_Not_!
리눅스에서 개발하다보면 남의 코드를 받았을 때 한글이 다 깨지는 증상이 있다.
이는 저쪽 개발자가 source insight 로 개발한 경우가 대부분이다.
source insight 는 UTF-8 을 지원하지 않아 한글을 입력하면 euc-kr 로 저장된다.
이를 리눅스환경에서 열면 한글이 모두 깨져보이게 된다.
(정확히 표현하면 charset이 euc-kr 이 아닌 경우)
검색해보니 어떤 중국인이 source insight UTF-8 플러그인을 개발한 것 같다.
사족인데, source insight 쓸거면 호환성을 위해 UTF-8 플러그인을 설치했으면 한다.
아래는 euc-kr 방식의 파일을 리눅스에서 UTF-8 방식으로 전환하는 방법이다.
$ locale
locale 명령어로 linux 로 저장되는 파일 방식을 확인할 수 있다.
내가 문서나 코드를 작성하고 저장했을 때, UTF-8 로 저장되는지 확인해 본다.
$ file -i test.c
test.c 란 파일의 charset 을 확인한다. ISO8859-1 로 나오면 euc-kr로 여겨도... 되나?
한글이 깨진 파일을 위 명령어로 확인해 보면 charset=ISO8859-1 로 나온다.
$ iconv -c -f euc-kr -t utf-8 test.c > test_utf8.c
test.c 의 charset을 UTF-8 로 변경하여 test_utf8.c 란 파일로 저장한다.
이 후, test_utf8.c 를 test.c 로 복사하여 원 코드를 변경할 수 있다.
참고로, 아래와 test.c > test.c 같이 파일이름을 같게 하면 안된다. 주의하자.
$ iconv -c -f euc-kr -t utf-8 test.c > test.c
위 번거로움을 아래와 같이 shell script 하나 작성해서 편하게 utf-8로 변경할 수 있겠다.
$ touch convUTF8.sh
$ chmod +x convUTF8.sh
$ vi convUTF8.sh
if [ -z $1 ] then
if [ ! -f $1 ]
cp $1 $1.org
|
이 후,
$ convUTF8.sh test.c
하면 test.c 의 charset 을 UTF-8 로 복사하며,
원래 파일은 test.c.org 로 백업한다.
'삽질미학 > Linux' 카테고리의 다른 글
Ubuntu 18 에 Docker 설치하기 (0) | 2020.03.28 |
---|---|
팀원용 Samba 설정 및 관리하기 (0) | 2020.03.13 |
Ubuntu Server TimeZone 바꾸기 (0) | 2020.01.14 |
[VI] NerdTreeIgnore 설정 시 file만 적용하는 법 (0) | 2017.06.01 |
VirtualBox - NAT 및 Bridge Adapter 개념 및 설정 (9) | 2017.03.30 |