Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Ошибка перекодировки русских символов

Ответить
Настройки темы
Любой язык - [решено] Ошибка перекодировки русских символов

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Из bat файла, создаю текстовый файл, в который вносится переменная содержащая русские символы. Программа которая использует этот файл, видимо пытается перекодировать его в US ASCII. Пишет вот такую ерунду:
Код: Выделить весь код
INFO: Locale=C
INFO: Converting filenames to US-ASCII
ERR:  Cannot convert UTF8 string
С какой-бы кодировкой я не создавал файл, получаю ошибку. Либо эту. Либо если создаю с его кодировкой, то вместо русских символов получаю ????.mpg
Прочитал про утилиту recode, надеялся с её помощью попробовать выкрутиться - но нигде ее не нашёл. На wiki пишут "видимо прекратили поддержку". По ссылке с wiki закачки нет.
Может ли кто нибудь подсказать мне, как мне выход из этой ситуации?

Отправлено: 09:07, 16-02-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


taravasya,
1. нужен пример батника и пример файла;
2. а если файл создать сразу в UTF-8, например блокнотом?
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:25, 16-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt config.txt
(161 байт, 5 просмотров)

Дело в том, что в этот документ, записывается 5 пустых параметров, и 6-й. 6-й параметр - это имя файла, который в последствии предстоит обработать этой вредной программой. Файл этот может быть и не один. Их может быть много. И генерация текстового файла находится внутри цикла. По-очереди к каждому возможно присутствующему файлу. Однако я пробовал подсунуть созданный вручную файл - результат, тот-же.
Вот код bat-ника
Код: Выделить весь код
chcp 65001
set mx=mplex.exe -f 8 -o
set compl=dvdauthor 
set demuxfld=f:\demuxed
set remuxfld=f:\remuxed
set outptfld=f:\compling
for %%a in (%demuxfld%\*.mpv) do %mx% %remuxfld%\%%~na.mpg %demuxfld%\%%~na.mpv %demuxfld%\%%~na.mpa
for %%b in (%remuxfld%\*) do (

ECHO ^<dvdauthor^> >config.txt
ECHO ^<vmgm /^> >>config.txt
ECHO ^<titleset^> >>config.txt
ECHO ^<titles^> >>config.txt
ECHO ^<pgc^> >>config.txt
ECHO ^<vob file="%%b" /^> >>config.txt
ECHO ^</pgc^> >>config.txt
ECHO ^</titles^> >>config.txt
ECHO ^</titleset^> >>config.txt
ECHO ^</dvdauthor^> >>config.txt
recode 
%compl% -o %%~nb -x config.txt
)
Текущую таблицу символов варьировал по-разному. И сам bat сохранял с разными настройками.
Текстовый файл "приаттачил"
Только что нашел этот recode. Сейчас разбираюсь с его синтаксисом. И во обще с тем, что он может. И сможет ли он мне помочь.
PS/ Думаю поймёте, что это должен был быть xml. По-началу я его и создавал. Результат тот же. Объявлять кодировку xml, в начале файла пробовал. Как utf, так и windows-1251(Как правильно задать US-ASCII - не знаю. Но подозреваю, что если задам, то русские символы станут нечитаемы и в блакноте)

Отправлено: 09:45, 16-02-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


taravasya, попробуй убрать CHCP и заменить одну строку в батнике на:
Код: Выделить весь код
CHCP 65001| >>config.txt ECHO ^^^<vob file="%%b" /^^^> &CHCP 866

Отправлено: 10:11, 16-02-2010 | #4


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Что то изменилось....
Код: Выделить весь код
config.txt:6: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xC7 0xE0 0xF5 0xE0
                      ^
ERR:  Error in parsing XML
В какой кодировке сохранить сам bat?
На сколько я понял, надо убрать
Код: Выделить весь код
chcp 65001
в самом начале
а вместо
Код: Выделить весь код
ECHO ^<vob file="%%b" /^> >>config.txt
Вставить Вашу строчку?
Код: Выделить весь код
CHCP 65001| >>config.txt ECHO ^^^<vob file="%%b" /^^^> &CHCP 866

Отправлено: 10:30, 16-02-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


taravasya, кодировка батника родная DOS/866
приложите текстовый файл, полученный батником

кстати, ранее выложенный файл 100% рабочий?

Отправлено: 10:46, 16-02-2010 | #6


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt config.txt
(161 байт, 3 просмотров)

Цитата amel27:
кстати, ранее выложенный файл 100% рабочий? »
Что Вы имеете ввиду? У меня в блокноте он открывается нормально. Русские символы отображются правильно. Сгенерирован он был из bat файла с указанными выше настройками.
Теперь код выглядет так:
Код: Выделить весь код
rem set mx=mplex.exe -f 8 -o
set compl=dvdauthor 
rem set demuxfld=f:\demuxed
set remuxfld=f:\remuxed
set outptfld=f:\compling
rem for %%a in (%demuxfld%\*.mpv) do %mx% %remuxfld%\%%~na.mpg %demuxfld%\%%~na.mpv %demuxfld%\%%~na.mpa
for %%b in (%remuxfld%\*) do (

ECHO ^<dvdauthor^> >config.txt
ECHO ^<vmgm /^> >>config.txt
ECHO ^<titleset^> >>config.txt
ECHO ^<titles^> >>config.txt
ECHO ^<pgc^> >>config.txt
>>config.txt ECHO ^^^<vob file="%%b" /^^^> &CHCP 866
rem ECHO ^<vob file="%%b" /^> >>config.txt
ECHO ^</pgc^> >>config.txt
ECHO ^</titles^> >>config.txt
ECHO ^</titleset^> >>config.txt
ECHO ^</dvdauthor^> >>config.txt
%compl% -o %%~nb -x config.txt
)
Добавляю новый текстовый файл. Визуально он ничем не отличается.
Ошибка снова вот такая:
Код: Выделить весь код
INFO: Locale=C
INFO: Converting filenames to US-ASCII
ERR:  Cannot convert UTF8 string '

Отправлено: 11:00, 16-02-2010 | #7


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt config.txt
(163 байт, 3 просмотров)

Я прошу прощения....Совсем уже запутался.
bat сохранил в 866
текст батника выше указанный.
Актуальный результат прилагаю к этому сообщению...
В окне cmd вижу следующее
Код: Выделить весь код
config.txt:6: parser error : error parsing attribute name
^<vob file="f:\remuxed\Р-Р°С:Р°С?РчР?РєР?1_1.mpg" /^>
                                                  ^
config.txt:6: parser error : attributes construct error
^<vob file="f:\remuxed\Р-Р°С:Р°С?РчР?РєР?1_1.mpg" /^>
                                                  ^
config.txt:6: parser error : Couldn't find end of Start Tag vob
^<vob file="f:\remuxed\Р-Р°С:Р°С?РчР?РєР?1_1.mpg" /^>
                                                  ^
ERR:  Error in parsing XML

Отправлено: 11:11, 16-02-2010 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата taravasya:
Что Вы имеете ввиду? »
для начала вам нужно разобраться какой файл вы должны получить, т.е. иметь пример рабочего config.txt, правильно обрабатываемого программой, тогда будет ясно к чему стремиться

Цитата taravasya:
В окне cmd вижу следующее »
само собой, в последнем случае вы зачем-то убрали "CHCP 65001|", из строки вывода, поэтому и появился лишний "^"

Отправлено: 11:21, 16-02-2010 | #9


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Этот файл абсолютно валидный, хоть txt хоть xml. Но если в нём нет русских букв. Тоесть в той же папке у меня лежит другой видео файл, с именем 001.mpg С этим файлом всё проходит без задоринки.
Цитата amel27:
в последнем случае вы зачем-то убрали "CHCP 65001 »
Вот валянок... решил что Вы опечатались... Щас буду мучить.

Отправлено: 11:29, 16-02-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Ошибка перекодировки русских символов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Проблема пакетной перекодировки файлов rBBWYwg Microsoft Windows 2000/XP 0 04-08-2009 16:57
Пишем JavaScript перекодировки из кириллицы в латиницу maasja Вебмастеру 16 08-06-2009 22:10
Преобразование русских символов в адресной строке Zalegajuschij Хочу все знать 6 26-02-2009 00:22
Именение разрешния без перекодировки zhecka Видео и аудио: обработка и кодирование 2 28-11-2006 18:04
Монтирование разделов msdos с нормальным отображением русских символов BurzumII Общий по FreeBSD 19 18-01-2005 15:58




 
Переход