목록UTF-8 (5)
준호씨의 블로그
MacOS 터미널에서 CentOS로 ssh로 접속하니 뭔가 경고가 뜹니다. $ ssh user@some.server.com -t zsh /etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory 예전에는 안 떴는데 왜 갑자기 나타나는 걸까요. 이 상태에서 vi 등의 편집기로 한글을 입력하면 다음과 같이 깨져버립니다. /etc/profile.d/lang.sh 19번째 줄에 뭐가 있는지 궁금해서 열어 봅니다. 1 # /etc/profile.d/lang.sh - set i18n stuff 2 3 sourced=0 4 5 if [ -n "$LANG" ]; th..
보다 아래처럼 하는 것이 좋다. 한글보다는 영어로 한글을 사용할 경우 일단 인코딩이 utf-8 이나 euc-kr 이냐에 따라서 다른 파일로 인식할 수 있다. 그리고 완성형이냐 조합형이냐에 따라서도 다른 문자로 인식할 수 있다. 그래서 가능하면 파일명은 영어로 쓰는 것이 좋다. 언젠가 한가지 방식으로 통일 되는 날이 온다면 모르겠지만 아직은 아니다. 공백은 쓰지 않거나 언더바 "_" 나 대시 "-" 를 사용 공백이 들어가면 폰트나 환경에 따라 공백문자가 몇개 들어갔는지 알기 어렵다. 게다가 공백문자가 스페이스인지 탭인지도 구분이 모호하다. 혼란의 여지가 많기 때문에 가능하다면 공백을 쓰지 않거나, 언더바 "_" 나 대시 "-" 등으로 구분하는 것을 권장한다.
vim 을 이용하여 BOM (Byte Order Mark) 를 추가, 확인, 제거 하는 방법에 대해 정리해 본다. UTF-8 에서 BOM 은 별로 쓸모 없는 녀석인데 괜히 BOM 이 있어서 문제가 되는 경우가 종종 발행한다. vim 에서도 간단하게 제거가 가능하니 방법을 알아 두면 종종 써 먹을 수 있을 것이다. BOM 생성 여부는 파일의 시작 hex 값에서 확인 할 수 있다. text 파일 만들기 vim 으로 임의의 텍스트 파일을 만든다. 기본적으로 BOM 이 없는 상태로 저장 된다. vi test 로 파일을 생성하고 hello world 라는 내용을 넣고 저장 (:w) 한다. hex 데이터 확인 $ xxd -p test 68656c6c6f20776f726c640a 68 - h 65 - e 6c - l..
vim 을 사용하다보면 환경에 따라 한글이 깨지는 경우가 있는데 그에 대한 해결 방안들을 정리 해 본다. OSX 환경에서 터미널로 리눅스 서버 접근할 때 위주라서 다른 환경에서는 좀 달라질 수 있다. 예를 들어 윈도우 PC 를 쓰는 경우 euckr 대신 cp949 를 넣어야 될 수도 있다. ~/.vimrc 설정 아래 설정을 추가 해 본다. set fencs=utf-8,euckr 그래도 안되면 아래 처럼 enc 를 추가 해 본다. 나의 경우 LANG 환경변수값이 korean 으로 되어 있는 경우 enc=utf-8 을 추가해 주어야 되었다. set enc=utf-8 set fencs=utf-8,euckr 위의 설정은 아래와 같은 설정이다. set encoding=utf-8 set fileencodings=u..
ipython notebook 환경 새로 구축 하는 중인데 %matplotlib inline 실행하면 장문의 에러 메시지가 나온다 get_ipython().magic('matplotlib inline') 로 시작 해서 마지막에 ValueError: unknown locale: UTF-8 처럼 나타난다. 구글링 해 보니 다음과 같이 지정해 주면 된다고 함 export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8 LANG 만 해서는 안되고 LC_ALL 까지 해 줘야 된다. 아마도 locale 지정을 따로 안하면 기본 UTF-8 이 되는 것 같은데 왜 UTF-8 을 인식하지 못하는지는 모르겠다. 게다가 예전에는 잘 되었었는데 말이다.