// Перекодировка файла из кодировки UTF-8 в ANSI. // Будет создан файл в кодировке ANSI в этом же каталоге // с суффиксом "_ansi" . // параметры: // каталогФайла - Каталог где лежит файл без символа "\" на конце // файлUTF8 - имя файла для конвертации Функция ПерекодироватьФайлUTF8_ANSI(каталогФайла, файлUTF8) исходныйФайл = каталогФайла + "\" + файлUTF8; файлЧтение = Новый ЧтениеТекста(исходныйФайл,КодировкаТекста.UTF8); txt=файлЧтение.Прочитать(); файлЧтение.Закрыть(); ФайлANSI = СтрЗаменить(файлUTF8,".","_ansi."); результатФайл = каталогФайла + "\" + ФайлANSI; файлЗапись = Новый ЗаписьТекста(результатФайл,КодировкаТекста.ANSI); файлЗапись.Записать(txt); файлЗапись.Закрыть(); Возврат ФайлANSI; КонецФункции // Запуск каталогCSV = "d:\csv"; файлCSV = "export_file_.csv"; // в utf-8 файлCSV_ansi = ПерекодироватьФайлUTF8_ANSI(каталогCSV,файлCSV);
Функция Перекодировка(Стр="",Кодировка="windows-1251") Стрим = СоздатьОбъект("Adodb.Stream"); Стрим.Type = 2; Стрим.Mode= 3; Стрим.charset="iso-8859-5"; Стрим.Open(); Стрим.WriteText(Стр); Стрим.Position=0; Стрим.charset=Кодировка; Рез=Стрим.ReadText(-1); Стрим.Close(); Возврат Рез; КонецФункции //Если предыдущая функция не срабатывает, то попробуйте: Стрим = СоздатьОбъект("Adodb.Stream"); Стрим.charset="iso-8859-5"; Стрим.Open(); Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C"); Стрим.Position=0; // здесь уже можно дергать нормальный текст Стрим2 = СоздатьОбъект("Adodb.Stream"); Стрим2.charset="windows-1251"; Стрим2.Open(); Стрим2.WriteText(Стрим.ReadText); Стрим2.Position=0; Рез=Стрим2.ReadText(-1); Стрим.Close(); Стрим2.Close(); //Выведем в Сообщить результаты Message("2 = "+Рез); Message("StrLen(Рез) = "+StrLen(Рез)); // Кратко Стрим = СоздатьОбъект("Adodb.Stream"); Стрим.charset="iso-8859-5"; Стрим.Open(); Стрим.LoadFromFile("c:\WORK\H R\PSHRR848.C"); Рез=Стрим.ReadText();
//Код где, ни единого объекта. smaharbA Процедура Сформировать() Стр="Нажрися вотки и закуси ка селедкой! "; База=""+_GetPerformanceCounter()+".txt"; УТФ=КаталогВременныхФайлов()+"УТФ"+База; ИСО=КаталогВременныхФайлов()+"ИСО"+База; ДОС=КаталогВременныхФайлов()+"ДОС"+База; ОбратноДОС=КаталогВременныхФайлов()+"ОбратноДОС"+База; Текст=СоздатьОбъект("Текст"); Текст.КодоваяСтраница(1); Для Сч=1 По 10 Цикл Текст.ДобавитьСтроку(Стр); КонецЦикла; Текст.Записать(ДОС); Текст.Очистить(); КомандаСистемы("chcp 28595 > nul & echo off 2> """+ИСО+""" & for /f ""delims="" %i in ("+ДОС+") do (chcp 28595|>> """+ИСО+""" echo %i)"); // КомандаСистемы("cmd /c ""chcp 28595|> """+ИСО+""" echo "+Стр+""""); Текст.КодоваяСтраница(0); Текст.ДобавитьСтроку(Симв(255)+Симв(254)); Текст.Записать(УТФ); КомандаСистемы("chcp 28595|> nul echo & cmd /u /c type """+ИСО+""" >> """+УТФ+""""); КомандаСистемы("type """+УТФ+""" > """+ОбратноДОС+""""); Текст.КодоваяСтраница(1); Текст.Открыть(ОбратноДОС); Для Сч=1 По Текст.КоличествоСтрок() Цикл Сообщить(Текст.ПолучитьСтроку(Сч)); КонецЦикла; КонецПроцедуры