![]() |
Ошибка перекодировки русских символов
Из bat файла, создаю текстовый файл, в который вносится переменная содержащая русские символы. Программа которая использует этот файл, видимо пытается перекодировать его в US ASCII. Пишет вот такую ерунду:
Код:
INFO: Locale=C Прочитал про утилиту recode, надеялся с её помощью попробовать выкрутиться - но нигде ее не нашёл. На wiki пишут "видимо прекратили поддержку". По ссылке с wiki закачки нет. Может ли кто нибудь подсказать мне, как мне выход из этой ситуации? |
taravasya,
1. нужен пример батника и пример файла; 2. а если файл создать сразу в UTF-8, например блокнотом? |
Вложений: 1
Дело в том, что в этот документ, записывается 5 пустых параметров, и 6-й. 6-й параметр - это имя файла, который в последствии предстоит обработать этой вредной программой. Файл этот может быть и не один. Их может быть много. И генерация текстового файла находится внутри цикла. По-очереди к каждому возможно присутствующему файлу. Однако я пробовал подсунуть созданный вручную файл - результат, тот-же.
Вот код bat-ника Код:
chcp 65001 Текстовый файл "приаттачил" Только что нашел этот recode. Сейчас разбираюсь с его синтаксисом. И во обще с тем, что он может. И сможет ли он мне помочь. PS/ Думаю поймёте, что это должен был быть xml. По-началу я его и создавал. Результат тот же. Объявлять кодировку xml, в начале файла пробовал. Как utf, так и windows-1251(Как правильно задать US-ASCII - не знаю. Но подозреваю, что если задам, то русские символы станут нечитаемы и в блакноте) |
taravasya, попробуй убрать CHCP и заменить одну строку в батнике на:
Код:
CHCP 65001| >>config.txt ECHO ^^^<vob file="%%b" /^^^> &CHCP 866 |
Что то изменилось....
Код:
config.txt:6: parser error : Input is not proper UTF-8, indicate encoding ! На сколько я понял, надо убрать Код:
chcp 65001 а вместо Код:
ECHO ^<vob file="%%b" /^> >>config.txt Код:
CHCP 65001| >>config.txt ECHO ^^^<vob file="%%b" /^^^> &CHCP 866 |
taravasya, кодировка батника родная DOS/866
приложите текстовый файл, полученный батником кстати, ранее выложенный файл 100% рабочий? |
Вложений: 1
Цитата:
Теперь код выглядет так: Код:
rem set mx=mplex.exe -f 8 -o Ошибка снова вот такая: Код:
INFO: Locale=C |
Вложений: 2
Я прошу прощения....Совсем уже запутался.
bat сохранил в 866 текст батника выше указанный. Актуальный результат прилагаю к этому сообщению... В окне cmd вижу следующее Код:
config.txt:6: parser error : error parsing attribute name |
Цитата:
Цитата:
|
Этот файл абсолютно валидный, хоть txt хоть xml. Но если в нём нет русских букв. Тоесть в той же папке у меня лежит другой видео файл, с именем 001.mpg С этим файлом всё проходит без задоринки.
Цитата:
|
Вложений: 1
Код:
rem set mx=mplex.exe -f 8 -o Ответ: Код:
INFO: Locale=C Дополнительно, попробовал деларировать кодировку xml US-ASCII(то что сейчас под ремаркой), получаю вот такое: Код:
config.xml:7: parser error : AttValue: ' expected Самое интересное, что с русскими папками эта прога работает номально. |
taravasya, похоже, dvdauthor работает только с английскими именами в XML-файле... так что - либо искать другую утилиту, либо придумывать алгоритм временного переименования файлов перед их обработкой
|
Цитата:
Цитата:
А что на счёт recode? Вы не знаете как с ней работать? Я же её в принципе нашел... но что-то никак не разберусь с синтаксисом. |
Цитата:
Цитата:
|
Цитата:
Код:
@echo off |
El Sanchez,
Что то видимо с goto не то? Исполнение проскакивает ремукс, создает xml файл где (<vob file="%b" />) ??? И уходит на запись. Писать нечего. И оно останавливается всё. Выкладываю текст всего проекта. Может я что-то натупил? Код:
rem Проверяем есть ли запланированное кодирование |
Цитата:
Покурил немного мануал и вот изменения Код:
@echo off |
Почти....
|
taravasya, у утилиты ключ -o означает вывод в каталог, а никак не вывод в файл
Обновление кода Код:
@echo off |
Эт я понимаю :) Я имел ввиду что папка должна создаться с именем полученным от файла. Ну во общем у Вас вроде бы это сейчас и вышло. Как появиться возможность проверю.
|
Огромное спасибо! Так вышло то что нужно.
|
Время: 21:27. |
Время: 21:27.
© OSzone.net 2001-