Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.67 Конвертация UTF-8 в ANSI

Страниц (1): [1]
 

1. Kibor - 17 Июля, 2020 - 08:35:41 - перейти к сообщению
utf8toansi конвертирует UTF-8 в ANSI.

Можно применять когда сайты отдают ответ в UTF-8 и вместо русских символов отображаются кракозябры.

utf8toansi имеет 3 вида использования.

1)
В виде параметра принимает string в формате UTF-8.
Возвращает string в формате ANSI
Может применяться одна переменная для источника и приемника.
CODE:
string T="Программируемый кликер";//Текст в формате UTF-8
string S=utf8toansi (T);//В S будет текст в формате ANSI
messagebox (S);


CODE:
string T="Программируемый кликер";//Текст в формате UTF-8
T=utf8toansi (T);//В T перезапишется текст в формате ANSI
messagebox (T);


2)
В виде параметра принимает указатель на массив char, в котором содержится текст в формате UTF-8. Должен заканчиваться нулем.
Возвращает string в формате ANSI
CODE:
char C[1000];//Массив C содержит текст в формате UTF-8
strcpy(#C[0], "Программируемый кликер");
string S=utf8toansi (#C[0]);//В S будет текст в формате ANSI
messagebox (S);


3)
В виде первого параметра принимает указатель на массив char, в который запишется текст в формате ANSI. Последний байт заполнится нулем.
В виде второго параметра принимает указатель на массив char, в котором содержится текст в формате UTF-8. Должен заканчиваться нулем.
Может применяться одна переменная для источника и приемника.
Возвращает размер текста в формате ANSI

CODE:
char C[1000];//Массив C содержит текст в формате UTF-8
strcpy(#C[0], "Программируемый кликер");
char E[1000];//Массив приемник текста в формате ANSI
int K=utf8toansi (#E[0], #C[0]);
messagebox (format(#E[0]));


CODE:
char C[1000];//Массив C содержит текст в формате UTF-8 и в который запишется ANSI
strcpy(#C[0], "Программируемый кликер");
int K=utf8toansi (#C[0], #C[0]);
messagebox (format(#C[0]));
2. Kibor - 18 Июля, 2020 - 11:42:00 - перейти к сообщению
Если планируется читать файл в формате UTF-8, то необходимо проверить наличие маркера BOM

CODE:
char C[1000];
int g=0;
if (fopen ("C:\utf.txt", "rb")!=0)//Файл в формате utf-8
{
g=freadb(#C[0], 1000);
fclose();
C[g]=0;
}

int N=0;
if (C[0]==239 && C[1]==187 && C[2]==191)N=3;//Если есть маркер BOM, начало текста будет с третьего символа.
string S=utf8toansi (#C[N]);


messagebox (S);

Powered by ExBB FM 1.0 Final