viewtopic.php?f=16&t=1014&start=0&hilit=Utf8ToAnsi
który dla przypomnienia problem polegał na tym, że funkcja Utf8ToAnsi() dla kodu pewnych stron www które deklarują się jako UTF-8 nie działała prawidłowo np:
http://www.serwisdom.pl/finanse-i-ubezp ... dkowe.html
znalazłem taki kod prototypowy:
KOD cpp: UKRYJ
WCHAR* buff = new WCHAR[(int)src.length()+1];
char* buff2 = new char[1024];
memset(buff,0,sizeof(WCHAR)*((int)src.length()+1));
memset(buff2,0,sizeof(char)*1024);
MultiByteToWideChar(CP_UTF8,0,src.c_str(),(int)src.length(),buff,(int)src.length()+1);
WideCharToMultiByte(1250,0,buff,(int)src.length(),buff2,(int)src.length(),NULL,NULL);
char* buff2 = new char[1024];
memset(buff,0,sizeof(WCHAR)*((int)src.length()+1));
memset(buff2,0,sizeof(char)*1024);
MultiByteToWideChar(CP_UTF8,0,src.c_str(),(int)src.length(),buff,(int)src.length()+1);
WideCharToMultiByte(1250,0,buff,(int)src.length(),buff2,(int)src.length(),NULL,NULL);
KOD cpp: UKRYJ
String ConvertUTFto1250(String input)
{
try
{
int rozmiar = input.Length();
WCHAR* buff = new WCHAR[(int)input.Length()+1];
char* buff2 = new char[rozmiar];
memset(buff,0,sizeof(WCHAR)*((int)input.Length()+1));
memset(buff2,0,sizeof(char)*rozmiar);
MultiByteToWideChar(CP_UTF8,0,input.c_str(),(int)input.Length(),buff,(int)input.Length()+1);
WideCharToMultiByte(1250,0,buff,(int)input.Length(),buff2,(int)input.Length(),NULL,NULL);
String temp = (String)buff2;
delete[]buff;
delete[]buff2;
return temp.Trim();
}
catch (...)
{
return "BLAD";
}
}
{
try
{
int rozmiar = input.Length();
WCHAR* buff = new WCHAR[(int)input.Length()+1];
char* buff2 = new char[rozmiar];
memset(buff,0,sizeof(WCHAR)*((int)input.Length()+1));
memset(buff2,0,sizeof(char)*rozmiar);
MultiByteToWideChar(CP_UTF8,0,input.c_str(),(int)input.Length(),buff,(int)input.Length()+1);
WideCharToMultiByte(1250,0,buff,(int)input.Length(),buff2,(int)input.Length(),NULL,NULL);
String temp = (String)buff2;
delete[]buff;
delete[]buff2;
return temp.Trim();
}
catch (...)
{
return "BLAD";
}
}
Kod działa w TMemo są polskie znaki...
Pytanie brzmi czy jest prawidłowy jak chodzi o dynamiczny przydział pamięci ?