AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.12.2013, 14:35   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Ну а если "руками" дописать этот BOM (0xEF 0xBB 0xBF) в файл перед конвертированными данными?..
За это сообщение автора поблагодарили: DreamCreator (3), Logger (1).
Старый 07.12.2013, 15:07   #2  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
:)
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Ну а если "руками" дописать этот BOM (0xEF 0xBB 0xBF) в файл перед конвертированными данными?..
Вот только что так и сделал На C# написал консольное приложение, которое принимает путь к файлу, который надо переконвертировать в UTF-8 и в него же записывает результат с BOM:
X++:
 static void Main(string[] args)
        {
            string path = args[0];            
                
            System.Text.Encoding encodingUTF = System.Text.Encoding.UTF8;
            System.Text.Encoding encodingWin = System.Text.Encoding.ASCII;

            string content = "";

            using (FileStream fs = File.Open(path, FileMode.Open))
            {
                StreamReader sr = new StreamReader(fs, Encoding.Default);
                content = sr.ReadToEnd();
            }

            using (FileStream fsw = File.OpenWrite(path))
            {
                Byte[] info = new UTF8Encoding(true).GetBytes(content);

                fsw.WriteByte(0xEF);
                fsw.WriteByte(0xBB);
                fsw.WriteByte(0xBF);

                fsw.Write(info, 0, info.Length);
            }
        }
Почему-то работает гораздо быстрее чем линуксовый конвертер recode )
Старый 07.12.2013, 22:37   #3  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Попробуйте такой вариант, насколько помню работал, у самого нет под рукой 3-ки проверить:
X++:
    Com objStream = new Com('ADODB.Stream');
    ;
    
    objStream.CharSet('utf-8');
    objStream.Open();
    objStream.WriteText('тест');
    objStream.SaveToFile(@'c:\test.txt');
    objStream.Close();
За это сообщение автора поблагодарили: DreamCreator (3), Alenka (1).
Теги
.net, ansi, ascii, cp866, utf8, законченный пример, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание текстового файла в кодировке DOS Pismarkina DAX: Программирование 5 18.06.2012 14:57
Файлы XML, CSV, HTML в кодировке Unicode EVGL DAX: База знаний и проекты 3 16.01.2009 14:23
Вывод отчета в файл в пакетном режиме Egor_bl DAX: Программирование 16 09.10.2006 19:10
Отчет записать сразу как RTF файл st_msav DAX: Программирование 2 17.01.2006 18:52
считать/записать данные в файл Valia DAX: Программирование 7 19.11.2003 11:59

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:46.