Сохраните текстовый файл с кодовой страницей UTF-8 в Axapta 3.0 - PullRequest
2 голосов
/ 05 февраля 2020

Как создать текстовый файл с кодовой страницей UTF-8 в Axapta 3.0?

Я не могу использовать

myFile = new CommaIo(myFileName, 'W', 65001);

, как мы можем в более новых версиях Аксапта. В Axapta 3.0 new CommaIo есть только первые два параметра.

1 Ответ

3 голосов
/ 05 февраля 2020

Я не работал в 3.0, но у меня есть несколько идей для вас, которые могут посылать вам правильный путь.

1) У вас есть CommaTextIo или TextIo? Это те объекты, где вы можете указать кодовую страницу.

2) Посмотрите на AOT и посмотрите, есть ли у вас макрос с именем #File, а внутри, если у вас есть #utf8Format(65001), используйте X -Ref (или Ctrl + F), чтобы найти другие места в системе, которые его используют. Затем вы можете увидеть, как они могли бы выполнить sh UTF-8

3) Посмотрите, можете ли вы объединить CommaIo с некоторым кодом NET или просто сгенерировать CSV вручную. Возможно, сгенерируйте CSV и запишите его, затем прочитайте и переписайте, используя метод, подобный приведенному ниже (из MetadataXMLGenerator job):

void write(str _directory, str _name, str _text)
{
    str path;
    ;

    _text = System.Text.RegularExpressions.Regex::Replace(_text, '\n', '\r\n');
    if (!System.IO.Directory::Exists(_directory))
    {
        System.IO.Directory::CreateDirectory(_directory);
    }
    path = System.IO.Path::Combine(_directory, _name);
    System.IO.File::WriteAllText(path, _text, System.Text.Encoding::get_UTF8());
}
...