UTF-8 사용시, FTP에서 euckr로 된 파일명의 파일을 다운로드 받

sodomau의 이미지
1380
points
0
points

페도라 코어2 사용하고 있습니다.
페도라 코어2 는 인코딩이 UTF-8로 맞춰져 있어서 이것저것
걸리적 거리는게 많네요;
ftp에서 파일을 받아오는데 파일명이 한글로 되어 있습니다.
그것도 euckr을 사용하고 있습니다.
이걸 다운로드 받으면(ncftp이용해서..) euckr도 아니고 utf-8도
아닌 그냥 파일명이 왕장창 깨져 있네요;
그쪽의 파일명이 euckr로 인코딩되어 있다 하더라도
이쪽에선 utf-8로 받을 수 있는 방법 없나요?

Re: UTF-8 사용시, FTP에서 euckr로 된 파일명의 파일을 다운로&

2
points

sodomau 씀:
페도라 코어2 사용하고 있습니다.
페도라 코어2 는 인코딩이 UTF-8로 맞춰져 있어서 이것저것
걸리적 거리는게 많네요;
ftp에서 파일을 받아오는데 파일명이 한글로 되어 있습니다.
그것도 euckr을 사용하고 있습니다.
이걸 다운로드 받으면(ncftp이용해서..) euckr도 아니고 utf-8도
아닌 그냥 파일명이 왕장창 깨져 있네요;
그쪽의 파일명이 euckr로 인코딩되어 있다 하더라도
이쪽에선 utf-8로 받을 수 있는 방법 없나요?

ncftp는 그런 옵션이 있는지는 확실하지 않지만 없는 걸로 알고 있구요. lftp의 경우에는 그런 게 있긴 해요. 옵션으로 지정할 때 다음과 같이 지정하면 됩니다.

인용:
set file:charset utf-8
set ftp:charset euc-kr

말 그대로 file:charset은 로컬 파일시스템에 사용할 문자셋을, ftp:charset은 리모트 파일시스템에서 사용되고 있는(즉 서버측의) 문자셋을 의미합니다.

페도라 코어에서 lftp가 있는지는 모르겠습니다만...

http://lftp.yar.ru/ 에서 참조하실 수 있습니다.

offree의 이미지
8410
points

페도라 코어 2 를 사용중인데..lftp 가 있긴 있네요.

0
points

페도라 코어 2 를 사용중인데..

lftp 가 있긴 있네요.

그런데, lftp 가 이전버전인지 해당 옵션이 없는 것 같습니다.

lftp.yar.ru 를 보니 3.0.6 이 최신 버전같네요.

페도라 코어 2 에 있는 버전은 2.6.12 네요.

새버전으로 다시 테스트 해봐야 겠습니다.

sodomau의 이미지
1380
points

다 지나간 얘기지만제가 잘 몰랐었네요;utf-8 도 아니고 cp9

0
points

다 지나간 얘기지만
제가 잘 몰랐었네요;
utf-8 도 아니고 cp949(or euckr) 도가 아니고
파일명은 euckr로 제대로 받아지는군요;
그래서 파일명의 인코딩을 바꿔주는 쉘스크립트 하나 짜 봤습니다.

#!/bin/bash
                                                                                
if [ $# -gt 1 ]
then
    p=$@
else
    p='./*'
fi
                                                                                
for filename in $p
    do
        utfname=`echo "$filename" | iconv -f cp949 -t utf-8`;
        echo "$filename : $utfname";
        mv "$filename" "$utfname";
    done

저도 비슷한 코드를 짜서 가지고 있었거든요.제것도 올려봅니다.

0
points

저도 비슷한 코드를 짜서 가지고 있었거든요.

제것도 올려봅니다.

올리신 분의 것이 조금 수정 된 거라고 보면 됩니다.

(euc-kr이 아닐때 안바꾸는게 저한테는 꼭 필요했거든요. ^^)


#!/bin/sh
                   
# mv2utf gets at least one filename
if [ $# -gt 0 ]
then
        args=$@
else
        echo "Usage : $mv2utf filename1 [filename2] .....";
        exit 0
fi
                                                                                
# Rename euc-kr filename to utf-8 filename
for filename in $args
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
                                                                                

lacovnk의 이미지
15218
points

누군가 수정해주시면... 버그가 흑 ㅠㅠ

0
points

1. 현재 로케일이 UTF-8이어야 하군요;;
2. 파일명에 공백이 있을 경우, 제대로 처리가 안됩니다;

공백 처리가 제대로 안 되는 문제는 다음과 같이 해결할 수 있습니다. (

0
points

공백 처리가 제대로 안 되는 문제는 다음과 같이 해결할 수 있습니다. (diff -u)

@@ -1,21 +1,19 @@
 #!/bin/sh

 # mv2utf gets at least one filename
-if [ $# -gt 0 ]
+if [ $# -eq 0 ]
 then
-        args=$@
-else
-        echo "Usage : $mv2utf filename1 [filename2] .....";
+        echo "Usage : $0 filename1 [filename2] .....";
         exit 0
 fi

 # Rename euc-kr filename to utf-8 filename
-for filename in $args
+for filename
 do
         utfname=`echo "$filename" | iconv -f euc-kr -t utf-8`;
         err=$?;
         if [ $err -eq 0 ]
         then
-                if [ $filename = $utfname ]
+                if [ "$filename" = "$utfname" ]
                 then
 # if the filename is english file name

gftp 를 패치해서 사용하시면 됩니다.

0
points

gftp 를 패치해서 사용하시면 됩니다.

lordmiss의 이미지
1194
points

혹시 지금도 gftp로

0
points

혹시 지금도 gftp로 패치하여 사용 가능한가요? 가능하다면 혹시 패치를 어떻게 하면 될까요?

아님, 이 문제에 대한 다른 답을 가지고 계신 분이 있으면 알려주세요...

http://lordmiss.com DDD, BMDRC

gamdora의 이미지
4156
points

파일질라*의 3 베타

1
point

파일질라*의 3 베타 버전이 리눅스*도 지원하는데,

서버의 charset을 지정하는 부분이 있습니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.