Linux 2007/10/25 13:14
윈도우의 파일을 ftp나 기타 등등으로 utf-8 시스템의 리눅스에 올리면 한글이 다 깨진다.
이것을 해결 할 수 있는 방법은 여러가지이다.
시스템을 euc-kr로 쓰거나 기타등등 방법은 여러가지이다.
이것 때문에 구글링을 해 보았고, kldp 포럼에서 몇가지 방법을 찾아 낼 수 있었다.
1. ftp upload 시 적절한 케릭터 셋을 이용하는 법.
lftp, filezilla, gftp 패치등이다.
이중에서 lftp는
set encoding=utf-8
set fileencodings=utf-8,euc-kr
이런식으로 세팅해서 이용 할 수 있다.
2. file system 마운트시 codepage 와 iocharset 을 명시
ex) -o codepage=949,iocharset=utf8
fstab에서 지정 해주면 편하게 이용이 가능 하다.
3. 자동 변경 쉘 스크립트.
쉘스크립트로 그냥 변경 해버린다.
만들까 했으나... KLDP에서 다른 분들의 글을 읽던 중 이미 만들어 놓은것을 발견 했다.
recypace + musiphil 두분이 만들었다. 한분이 만들고 다른분이 버그 수정.
내가 만든것이 아니므로, 원 저작자를 밝혔다.(또한 원자작자가 삭제를 원하면 지울것이다.)
----------------------------------------------------------------------
$ cat char_convert.sh
#!/bin/sh
# mv2utf gets at least one filename
if [ $# -eq 0 ]
then
echo "Usage : $0 filename1 [filename2] .....";
exit 0
fi
# Rename euc-kr filename to utf-8 filename
for filename
do
utfname=`echo "$filename" | iconv -f euc-kr -t utf-8`;
err=$?;
if [ $err -eq 0 ]
then
if [ "$filename" = "$utfname" ]
then
# if the filename is english file name
echo "$filename is not euc-kr (may be in english)"
else
# if the filename is euc-kr
echo "rename $filename : $utfname";
mv "$filename" "$utfname"
fi
else
# if the filename is not euc-kr
echo "$filename is not euc-kr"
fi
done
----------------------------------------------------------------------
4. iconv와 convmv
convmv --notest -f euckr -t utf-8 -r DIRECTORY
5. vi 에서
set encoding=utf-8
set fileencodings=utf-8,euc-kr
상황에 따라 적절한 방법을 선택해서 이용 하면 된다.
최고의 방법이란 없다. 언제나 사황에 따른 최선의 방법이 있을 뿐이다.
이것을 해결 할 수 있는 방법은 여러가지이다.
시스템을 euc-kr로 쓰거나 기타등등 방법은 여러가지이다.
이것 때문에 구글링을 해 보았고, kldp 포럼에서 몇가지 방법을 찾아 낼 수 있었다.
1. ftp upload 시 적절한 케릭터 셋을 이용하는 법.
lftp, filezilla, gftp 패치등이다.
이중에서 lftp는
set encoding=utf-8
set fileencodings=utf-8,euc-kr
이런식으로 세팅해서 이용 할 수 있다.
2. file system 마운트시 codepage 와 iocharset 을 명시
ex) -o codepage=949,iocharset=utf8
fstab에서 지정 해주면 편하게 이용이 가능 하다.
3. 자동 변경 쉘 스크립트.
쉘스크립트로 그냥 변경 해버린다.
만들까 했으나... KLDP에서 다른 분들의 글을 읽던 중 이미 만들어 놓은것을 발견 했다.
recypace + musiphil 두분이 만들었다. 한분이 만들고 다른분이 버그 수정.
내가 만든것이 아니므로, 원 저작자를 밝혔다.(또한 원자작자가 삭제를 원하면 지울것이다.)
----------------------------------------------------------------------
$ cat char_convert.sh
#!/bin/sh
# mv2utf gets at least one filename
if [ $# -eq 0 ]
then
echo "Usage : $0 filename1 [filename2] .....";
exit 0
fi
# Rename euc-kr filename to utf-8 filename
for filename
do
utfname=`echo "$filename" | iconv -f euc-kr -t utf-8`;
err=$?;
if [ $err -eq 0 ]
then
if [ "$filename" = "$utfname" ]
then
# if the filename is english file name
echo "$filename is not euc-kr (may be in english)"
else
# if the filename is euc-kr
echo "rename $filename : $utfname";
mv "$filename" "$utfname"
fi
else
# if the filename is not euc-kr
echo "$filename is not euc-kr"
fi
done
----------------------------------------------------------------------
4. iconv와 convmv
convmv --notest -f euckr -t utf-8 -r DIRECTORY
5. vi 에서
set encoding=utf-8
set fileencodings=utf-8,euc-kr
상황에 따라 적절한 방법을 선택해서 이용 하면 된다.
최고의 방법이란 없다. 언제나 사황에 따른 최선의 방법이 있을 뿐이다.
이 글에는 트랙백을 보낼 수 없습니다
0