Показать сообщение отдельно
Старый 22.12.2020, 13:28   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
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);
}
Помогите с идеями.