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

sodomau의 이미지

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

kokids의 이미지

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

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

Quote:
set file:charset utf-8
set ftp:charset euc-kr

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

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

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

타면자건(唾面自乾)

offree의 이미지

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

lftp 가 있긴 있네요.

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

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

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

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

사용자가 바꾸어 나가자!!

= about me =
http://wiki.kldp.org/wiki.php/offree , DeVlog , google talk : offree at gmail.com

sodomau의 이미지

다 지나간 얘기지만
제가 잘 몰랐었네요;
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
recypace의 이미지

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

제것도 올려봅니다.

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

(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의 이미지

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

musiphil의 이미지

공백 처리가 제대로 안 되는 문제는 다음과 같이 해결할 수 있습니다. (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
creamat의 이미지

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

lordmiss의 이미지

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

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

http://lordmiss.com DDD, BMDRC

gamdora의 이미지

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

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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.