'iconv'에 해당되는 글 1건

  1. 2006/02/25 iconv를 이용한 자동 문자인코딩 바꾸기

#!/bin/sh

# Maintainer    : gogisnim (gogisnim@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