22.12.2020, 13:28 | #1 |
NavAx
|
D365FO как сгенерировать текстовый файл в кодировке ASCII?
Всем привет.
Возникла неожиданная проблема - в D365FO кодировка по умолчанию UTF8. Мне нужно сгенерить текстовый файл в ASCII, не получается. Не рабочий код. X++: public static System.String convert2ASCII_v1(System.String _str) { System.String retStr; System.Text.Encoding Encoding = new System.Text.ASCIIEncoding(); var utf8bytes = Encoding.GetBytes(_str); var win1252Bytes = System.Text.Encoding::Convert(System.Text.Encoding::UTF8, System.Text.Encoding::ASCII, utf8bytes); retStr = Encoding.GetString(win1252Bytes); return retStr; } X++: public static System.String convert2ASCII_v2(System.String _str) { System.String retStr; System.Text.ASCIIEncoding ASCIIEncoding; System.Byte[] bytes; System.Byte[] ascii; int i; int len; int val; Binary bin; ASCIIEncoding = new System.Text.ASCIIEncoding(); bytes = ASCIIEncoding.GetBytes(_str); len = bytes.get_Length(); bin = new Binary(len); for (i = 0; i < len; i++) { val = bytes.GetValue(i); bin.byte(i, val); } ascii = new System.Byte[len](); for (i = 0; i < len; i++) { ascii.SetValue(System.Convert::ToByte(bin.byte(i)), i); } retStr = ASCIIEncoding.GetString(ascii); } |
|
22.12.2020, 14:35 | #2 |
Участник
|
поискал, нашел пример
вот такой код писал в 4-ке и в 12-ке Попробуйте поставить другую кодировку X++: netEncoding = System.Text.Encoding::get_UTF8(); netBoolFalse = false; netPath = pathFileIn; netText = _strComVariant ? _strComVariant.bStr() : ''; netSw = new System.IO.StreamWriter(netPath, netBoolFalse, netEncoding); netSw.Write(netText); netSw.Flush(); netSw.Dispose(); netSw = null; |
|
22.12.2020, 14:40 | #3 |
Участник
|
Вот еще про перевод
записать файл в UTF-кодировке |
|