본문으로 건너뛰기
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 CSS가 어려운 이유 — 프로젝트 중심 실전 CSS 강의 소개 2023-04-13
📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12
📌 [번역] CSS 코드 냄새 2013-01-01

git에서 euc-kr로 된 파일 diff 시 한글 제대로 표시하기

euc-kr로 된 프로젝트 작업을 하고 있는데, 이게 커맨드 라인에서 git diff를 하면 한글이 다 깨져 나온다. 터미널은 UTF-8이고, 프로젝트는 EUC-KR이라 그렇다. 귀찮아서 aliasiconv를 걸어 놓고 작업했지만… diff 옵션을 충분히 줄 수 없는 문제가 있어서… 해법을 찾아 나섰다. 그리고 textconv라는 옵션이 있다는 걸 알게 됐다.

보니까 JPG나 ODT 같은 바이너리 파일을 diff로 비교할 때 사용하는 옵션인 거 같은데, 인코딩 변환에도 얼마든 사용할 수 있다.

자신의 홈 디렉토리를 보면 .gitconfig라는 파일이 있다. 여기에 아래와 같은 걸 추가한다.

[diff "euckr"]
      textconv="iconv -f euc-kr -t utf-8"

나는 이름을 euckr이라고 붙였는데 자유롭게 붙이면 된다. 그리고 textconv 옵션으로 사용할 툴을 적어 준다. 나는 iconv를 이용해서 인코딩 변환을 하도록 툴을 적었다. odt 같은 것이라면 odt2txt.sh 같은 명령어를 적으면 될 것이다.

그리고 자신의 프로젝트에 가서 .gitattributes라는 파일을 생성한다. 이 파일은 폴더 단위로 적용할 수 있나 보다. 적용하기 원하는 폴더에 이 파일을 두면 되는 듯하다. 이 파일의 내용은 아래와 같다.

*.php diff=euckr
*.css diff=euckr
*.js diff=euckr

만들어 둔 diff 세트를 특정 파일명 패턴에 적용하는 것이다.

이렇게 하고 git diff를 하니 euc-kr이 깔끔하게 한글로 표시된다.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

Leave a Reply

Your email address will not be published. Required fields are marked *