Тема: ftp codepage
Показать сообщение отдельно
  #5  
Старый 30.04.2021, 21:56
Vladimir Bormotov
Guest
 
Сообщений: n/a
По умолчанию Re: ftp codepage

Vladimir Bormotov написал(а) к Kirill Frolov в Dec 02 13:29:56 по местному времени:

From: Vladimir Bormotov <bor@vb.dn.ua>


Нi, Kirill!

>>>>> "KF" == Kirill Frolov <Kirill.Frolov@p2.f827.n5030.z2.fidonet.org> writes:

NL>>> Как сказать фтп-клиенту (lftp например)
NL>>> в какой кодировке имена файлов на фтп-сервере (IIS например) ?
NL>>> Заранее thanks
VW>> Запустить его в соответствующей локали

KF> Так он перекодировать-же не будет.

конечно не будет, а зачем? ;-)

KF> И ext2fs записывает имена в какой-попало кодировке (а попадает обычно
KF> КОИ8). Интересно, а в utf-8 перевести можно?

можно.

переведенные имена проще всего смотреть через ls | iconv

====
#!/usr/bin/python2
"""recode filenames from one encoding to another"""

import os
import sys
import getopt

ENC_FROM = 'koi8-r'
ENC_TO = 'cp1251'


def usage():
print '''\
USAGE>> namesrecode [-f <from_encoding>] [-t <toencoding] <path>

from_encoding - source filenames encoding
to_encoding - target filenames encoding
path - path to process filenames (not recursive)

defaults: fromencoding = %s, toencoding = %s
''' % (ENCFROM, ENCTO)
sys.exit(1)

def frename(fname, encfrom, encto):
new_name = unicode(fname, enc_from).encode(encto)
os.rename(fname, newname)
return newname

def main(args):
try:
(opts, arg) = getopt.getopt(args, 'f:t:')
except GetoptError:
print 'Options error'
usage()
if len(_arg) != 1:
print 'You must provide a path'
usage()
else:
dir = arg[0]

for opt, _value in opts:
if opt == '-f': ENC_FROM = value
if opt == '-t': ENC_TO = value

print 'Process rename filenames in directroy "%s" from %s to %s' % \
(dir, ENC_FROM, ENCTO)

curdir = os.getcwd()
os.chdir(_dir)
for _filename in os.listdir('.'):
frename(filename, ENC_FROM, ENCTO)
os.chdir(curdir)
return 0

if _name__ == '__main_':
main(sys.argv[1:])
====

--
Bor.
--- ifmail v.2.15dev5
Ответить с цитированием