Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[인코딩] iconv를 이용한 인코딩 변경 Computer & Program

그동안 UTF-8로 작업을 했다. 그런데.. 한글 문제가 생긴다. UTF-8로 작업한 문서를 UTF-8 인코딩으로 열면 상관 없지만.. 그렇지 않은 경우 한글이 깨져 보인다. 음.. UTF-8을 지원하는 프로그램으로 열면 되겠지만.. 여건상 그렇지 못 한 경우가 발생할 수 있어 UTF-8로 인코딩된 문서를 EUC-KR로 변경하게 되었다. 왠지 남들과는 반대로 가는 듯한 기분이 들지만.. 그렇게 하자니 그렇게 했다.

문자 인코딩을 바꾸는 것은 iconv라는 명령을 사용하면 되고, 대부분의 리눅스는 기본으로 설치가 되어있다고 한다. (리눅스는 정확하게 모르니 패스 -ㅅ-;;) 일단.. 이 명령으로 인코딩을 바꾸는 스크립트의 예가 있다. 이 예들은 EUC-KR에서 UTF-8로 변경하는 것이다.


수행하기 전에 꼭 백업을 해두도록!!
그리고 아래의 예제를 자기 취향에 맞게 수정해서 사용하기 바란다. 나는 간단한 첫번째 예제를 *.hpp 대신 *.java를 사용하였다.

#!/bin/sh
for I in *.hpp ; do iconv -c -f euc-kr -t utf-8 $I > $I.tmp && mv $I.tmp $I ; done
for I in *.cpp ; do iconv -c -f euc-kr -t utf-8 $I > $I.tmp && mv $I.tmp $I ; done

#!/bin/sh

# Maintainer : Chan Hwang (innuendo9@gmail.com)
# Last Modify : 2006.02.24
# 특정 디렉토리의 euc-kr 포맷을 utf-8 포맷으로 일괄 변환한다
# 사용법: uni_change.sh 디렉토리명|파일명 [포맷형태]
# 주의사항 : 스크립트 구동전 반드시 백업을 하십시오



if [ -z "$1" ]; then
echo "usage: uni_change.sh dir|file [encoding]"
exit 1
fi

if [ -z "$2" ]; then
FENCODE="euc-kr"
TENCODE="utf-8"
fi

if [ "X$2" = "Xutf-8" ]; then
FENCODE="euc-kr"
TENCODE="utf-8"
elif [ "X$2" = "Xeuc-kr" ]; then
FENCODE="utf-8"
TENCODE="euc-kr"
fi



if [ -d "$1" -a -w "$1" ]; then
FLAG="D"
elif [ -f "$1" -a -w "$1" ]; then
FLAG="F"
else
FLAG="X"
fi

if [ "X$FLAG" = "XF" ]; then
FILE=$1
iconv -f $FENCODE -t $TENCODE $FILE > ${FILE}_new 2> /dev/null
RETVAL=$?
if [ "X$RETVAL" = "X0" ]; then
mv -f ${FILE}_new $FILE
echo "$FILE encoding changed ... success"
else
rm -f ${FILE}_new
echo "$FILE encoding changed ... fixed"
fi

elif [ "X$FLAG" = "XD" ]; then
DIR=$1
LIST=`find "$DIR" -type f`

for file in $LIST; do
iconv -f $FENCODE -t $TENCODE $file > ${file}_new 2> /dev/null
RETVAL=$?
if [ "X$RETVAL" = "X0" ]; then
mv -f ${file}_new $file
echo "$file encoding changed ... success"
else
rm -f ${file}_new
echo "$file encoding changed ... fixed"
fi
done

else
echo "$file encoding changed ... failed"

fi



exit 0


- 출처
iconv를 사용해 euc-kr를 utf-8로 변환하기 bash 스크립트
iconv를 이용한 자동 문자인코딩 바꾸기

덧글

  • 즈모모 2008/06/18 10:59 # 답글

    이것은 쉘언어!!!
  • Sigel 2008/06/18 11:37 #

    아.. 저는 쥐뿔도 모르기 때문에 쉽게 알아 볼 수 있는 간단한 첫번째 예제로.. 두번째는 그냥.. 혹시 모를 참고용이에요.. =ㅅ=;;
댓글 입력 영역

Google AdSense (text/image)