| View previous topic :: View next topic |
| Author |
Message |
EOF8157 neophyte
Joined: 27 Mar 2012 Posts: 4
|
Posted: Tue Mar 27, 2012 9:55 pm Post subject: Russian names |
|
|
Приветствую!
Ставлю 3.1 версию mldonkey на freebsd 9.0
Локаль koi8-r
При скачивании торрентов часть папок\файлов на русском, в кои, а часть в utf. Особый шик - папка в KOI, а файлы в ней UTF
Как поправить ?
Нашел экспериментальную опцию "utf8_filename_conversions" в downloads.ini но что туда вписывать надо нигде не написано |
|
| Back to top |
|
 |
EOF8157 neophyte
Joined: 27 Mar 2012 Posts: 4
|
Posted: Fri Mar 30, 2012 5:46 am Post subject: |
|
|
Ну, никому не интересно чтоль ?
Программисты есть ?
кусок функции commonoptions
| Code: |
let safe_utf8 s =
if Charset.is_utf8 s
then s
else failwith (Printf.sprintf "%s is not an UTF-8 string.\n" s)
let value_to_utf8 v =
let s = Options.value_to_string v in
safe_utf8 s
let utf8_to_value s =
let s = safe_utf8 s in
Options.string_to_value s
let utf8_option =
define_option_class "Utf8"
value_to_utf8 utf8_to_value
let utf8_filename_conversions = define_expert_option current_section ["utf8_filename_conversions"]
"The conversions to apply on Unicode characters"
(list_option (tuple2_option (int_option, utf8_option))) []
|
кусок commoninteractive
| Code: |
let canonize_basename name =
let buf = Buffer.create 100 in
let uname = Charset.Locale.to_utf8 name in
for i = 0 to Charset.utf8_length uname - 1 do
(* replace chars on users request *)
let uc = Charset.utf8_get uname i in
try
let us = List.assoc uc !!utf8_filename_conversions in
for j = 0 to Charset.utf8_length us - 1 do
let uc' = Charset.utf8_get us j in
let uc'' = check_forbidden_chars uc' in
Charset.add_uchar buf uc''
done
with _ ->
begin
let uc' = check_forbidden_chars uc in
Charset.add_uchar buf uc'
end
done;
if not Autoconf.windows then
Charset.Locale.to_locale (Buffer.contents buf)
else
Buffer.contents buf (* Windows uses patched Ocaml which always uses Unicode chars *)
|
Методом проб и ошибок и попытки вникания в вышенаписанный код пришел к следующим параметрам в переменной "utf8_filename_conversions" :
| Code: |
utf8_filename_conversions = [
(число, "строка");
(1, "пя");
]
|
число думается код символа(например по кои а "строка" - символ UTF в кавычках, вместо строки подходит так же hex (млд не ругается)
Только вот чуда перекодировки так и не случилось. Может функция отключена ? или мои выводы по параметрам строки не верны |
|
| Back to top |
|
 |
vad neophyte
Joined: 27 Aug 2005 Posts: 11
|
Posted: Fri Mar 30, 2012 7:00 am Post subject: |
|
|
| Гляньте обсуджение в соседней теме Problema s kyrillic'oi v share |
|
| Back to top |
|
 |
EOF8157 neophyte
Joined: 27 Mar 2012 Posts: 4
|
Posted: Fri Mar 30, 2012 8:01 am Post subject: |
|
|
vad
Не нужна мне локаль UTF8 , вот в чем дело то
Хотелось бы подружить с однобайтовой кодировкой типа KOI8 или CP1251
Проблема в принципе в том, что если качать торент с папкой то вложенные файлы будут в UTF, одночные файлы по русски названы нормально
так же в UTF хранятся файлы .torrent (млд их переименовывает зачем то) |
|
| Back to top |
|
 |
EOF8157 neophyte
Joined: 27 Mar 2012 Posts: 4
|
Posted: Fri Mar 30, 2012 2:40 pm Post subject: |
|
|
Ладно, решил копать в другую сторону - запуска скрипта(с convmv) после скачки. и тут облом!
для начала написал пример, для просмотра что чего(скриптов еще писать не приходилось)
| Code: |
#!/usr/local/bin/bash
# file_completed_cmd interface
HASH="$1"
SIZE="$2"
FILENAME="$3"
DIR="$INCOMING"
echo File: "$FILENAME" >>1t.log
echo Hash: $HASH >>1t.log
echo Size: $SIZE >>1t.log
echo Dirs: $DIR >>1t.log
echo =========================== >>1t.log
exit 0
|
Скрипт запускается, все замечательно, только вот в логах ошибка
| Code: |
2012/03/30 18:32:56 [BT] [file_num 23][temp /share/temp/BT-HO24QPMDPSGCMTHYDYJOTOX7O3TXLXN4] Tracker return: completed Массовая библиотека инженера. Рлектроника
2012/03/30 18:32:56 [BT] [file_num 23][temp /share/temp/BT-HO24QPMDPSGCMTHYDYJOTOX7O3TXLXN4] Tracker return: completed Массовая библиотека инженера. Рлектроника
2012/03/30 18:33:04 [cInt] Exception waitpid failed: Interrupted system call while executing /home/share/.mldonkey/fcc
|
Кстати - почему-то в логах окончание закачки файла дважды пишется
Я даже спецом БАШ поставил - думал дело в нем
И после сей ошибки у млд немного сносит крышу - перестает реагировать на добавление торентов(через санчо) |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © phpBB Group
|
|
|
|