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
상황에 따라 적절한 방법을 선택해서 이용 하면 된다.
최고의 방법이란 없다. 언제나 사황에 따른 최선의 방법이 있을 뿐이다.
이 글에는 트랙백을 보낼 수 없습니다
pelly.ryu | 2016/10/20 00:54
저처럼 누군가 또 찾아올 것 같아 남깁니다..
`$convmv -f cp949 -t utf-8 -r 디렉토리명`이 가장 쉬운 해결책인 것 같습니다.
위의 것으로 테스트해보시고, 실사용시는 --notest 붙여주셔야 적용됩니다.
출처: http://forcecore.tistory.com/433
`$convmv -f cp949 -t utf-8 -r 디렉토리명`이 가장 쉬운 해결책인 것 같습니다.
위의 것으로 테스트해보시고, 실사용시는 --notest 붙여주셔야 적용됩니다.
출처: http://forcecore.tistory.com/433
pelly.ryu | 2016/10/20 00:56
라고 적고 보니 4번이 눈에 띄었네요.
지우려고 했는데 비번이 맞지 않아서.. ㅎㅎ; |
웅쓰 | 2007/10/25 13:14
기계백작님 감사 ㅋㅋㅋㅋ
0