Появляются крокозябры при сохранении текстнового файла
Здравствуйте!
Сталкивался ли кто-нибудь с таким случаем.
Мне нужно выгрузить файл в стороннюю программу, куда принимается свой формат типа txt в кодировке dos.
До вчерашнего дня все работало. Ругается та программа так:
"Ошибка! В файле есть символы не из DOS-кодировки! Ошибка в строке № 1 в позиции 2."
Смотрю свой файл действительно там первые три символа крокозябры я╗┐
Открыла старые файлы. там тоже эти символы, но сторонняя программа видимо что-то переделала у себя и теперь ругается на них.
Нужно переделывать свою обработку.
Как избавиться от этих символов.
Написала обработку по просмотру символов, после записи 1ска эти символы тоже видит, а при записи нет.
вся обработка очень маленькая
Сталкивался ли кто-нибудь с таким случаем.
Мне нужно выгрузить файл в стороннюю программу, куда принимается свой формат типа txt в кодировке dos.
До вчерашнего дня все работало. Ругается та программа так:
"Ошибка! В файле есть символы не из DOS-кодировки! Ошибка в строке № 1 в позиции 2."
Смотрю свой файл действительно там первые три символа крокозябры я╗┐
Открыла старые файлы. там тоже эти символы, но сторонняя программа видимо что-то переделала у себя и теперь ругается на них.
Нужно переделывать свою обработку.
Как избавиться от этих символов.
Написала обработку по просмотру символов, после записи 1ска эти символы тоже видит, а при записи нет.
вся обработка очень маленькая
Процедура ВыгрузитьУралСиб(Кнопка)
сч=0;
для каждого сс из сотр цикл
если сс.Банк="V" тогда
сч=сч+1;
Текст = Новый ТекстовыйДокумент;
нач=ДополнитьСтрокуПробелами(Строка(1), 5);
кк= ДополнитьСтрокуПробелами("unoa", 1)+" ";
сум=ДополнитьСтрокуПробелами(Строка(Формат(сс.сумма,"ЧЦ=14;ЧДЦ=2;ЧГ=0")),14);
Стр=строка(нач)+кк+строка(сум);
Текст.ДобавитьСтроку(Стр);
нач=ДополнитьСтрокуПробелами(СОкрЛП(сс.НомерРСчета),20);
сум=ДополнитьСтрокуПробелами(Строка(Формат(сс.сумма,"ЧЦ=14;ЧДЦ=2;ЧГ=0")),12);
Стр=строка(нач)+строка(сум);
Текст.ДобавитьСтроку(Стр);
Месяц=?(СТРДлина(Строка(Месяц(Дата)))=1,"0","")+Строка(Месяц(Дата));
День=?(СТРДлина(Строка(День(Дата)))=1,"0","")+Строка(День(Дата));
ИмяФ=Путь+"\UNOA"+строка(месяц)+строка(День)+".I"+?(СТРДлина(строка(сокрлп(сс.НомерПП)))=1,"0","")+строка(сокрлп(сс.НомерПП));
Текст.;
конецесли;
конеццикла;
Предупреждение("Сформировано "+строка(сч)+" файлов");
КонецПроцедуры
Функция ДополнитьСтрокуПробелами(Строка, Длина)
Пока СтрДлина(Строка) < Длина Цикл
Пробел = Символ(32);
Строка = Пробел+Строка;
КонецЦикла;
строка=стрЗаменить(строка,",",".");
Возврат Строка;
КонецФункции
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) самого главного нет. Как записываете?
По всей видимости не указываете кодировку. По умолчанию сохраняется в utf-8 с bom.
BOM существует только для utf-8. Для OEM он не имеет смысла.
ЗТ = Новый ЗаписьТекста(ИмяФайла,КодировкаТекста.OEM);
ЗТ.Записать(Данные);
ЗТ.Закрыть();
По всей видимости не указываете кодировку. По умолчанию сохраняется в utf-8 с bom.
BOM существует только для utf-8. Для OEM он не имеет смысла.
рискну предположить что дело в кодировке
символы я╗┐ это BOM - (англ. Byte Order Mark (BOM))
Маркер последовательности байтов или метка порядка байтов (англ. Byte Order Mark (BOM)) — Юникод-символ, используемый для индикации порядка байтов текстового файла. Его кодовый символ U+FEFF. По спецификации, его использование не является обязательным, однако, если маркер последовательности байтов используется, то он должен быть установлен в начале текстового файла. Помимо своего конкретного использования в качестве указателя порядка байтов, символ может также указать, какой кодировкой Unicode закодирован текст.
символы я╗┐ это BOM - (англ. Byte Order Mark (BOM))
Маркер последовательности байтов или метка порядка байтов (англ. Byte Order Mark (BOM)) — Юникод-символ, используемый для индикации порядка байтов текстового файла. Его кодовый символ U+FEFF. По спецификации, его использование не является обязательным, однако, если маркер последовательности байтов используется, то он должен быть установлен в начале текстового файла. Помимо своего конкретного использования в качестве указателя порядка байтов, символ может также указать, какой кодировкой Unicode закодирован текст.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот