привет юзая builder с++ получаю HTML страницу там есть русские строки в кодировке я так понимаю юникода PHP: "\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439" Это слово Парагвай Как мне привести символы в читабельный вид и занести в переменную типа char Если я делаю так, то при просмотре переменной buff дебагером -она читается на русском языке PHP: char buff[]="\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439"; а если я копирую текст крякозябры в Memo то потом оттуда пытаюсь привести в читабельный вид не получается Может кто сталкивался?
Решил сам написать но буду рад увидеть и ваши варианты Мой вариант не претендует на самое молниеностное выполнение но чтото настругал вот PHP: //Конвертация unicode в русские символы void Convert_Unicode_Russ(char *Source, char *Dest) { size_t len; char Table_a[]="абвгдеёжзийклмнопрстуфхцчшьщъыэюя"; char Table_A[]="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЬЩЪЫЭЮЯ"; const char *code_alfa[]={ "\\u0430", "\\u0431", "\\u0432", "\\u0433", "\\u0434", "\\u0435", "\\u0451", "\\u0436", "\\u0437", "\\u0438", "\\u0439", "\\u043a", "\\u043b", "\\u043c", "\\u043d", "\\u043e", "\\u043f", "\\u0440", "\\u0441", "\\u0442", "\\u0443", "\\u0444", "\\u0445", "\\u0446", "\\u0447", "\\u0448", "\\u044c", "\\u0449", "\\u044a", "\\u044b", "\\u044d", "\\u044e", "\\u044f" }; const char *code_ALFA[]={ "\\u0410", "\\u0411", "\\u0412", "\\u0413", "\\u0414", "\\u0415", "\\u0401", "\\u0416", "\\u0417", "\\u0418", "\\u0419", "\\u041a", "\\u041b", "\\u041c", "\\u041d", "\\u041e", "\\u041f", "\\u0420", "\\u0421", "\\u0422", "\\u0423", "\\u0424", "\\u0425", "\\u0426", "\\u0427", "\\u0428", "\\u042c", "\\u0429", "\\u042a", "\\u042b", "\\u042d", "\\u042e", "\\u042f", }; len = strlen(Source); char ch[10]; if(len < 1) return; strcpy(Dest, Source); for(int i=0; i < 33; i++) { while(strstr(Dest, code_alfa[i])) { sprintf(ch, "%c\0", Table_a[i]); replace(Dest, (char *)code_alfa[i], ch); } while(strstr(Dest, code_ALFA[i])) { sprintf(ch, "%c\0", Table_A[i]); replace(Dest, (char *)code_ALFA[i], ch); } } } PHP: //Замена куска OldStr в строке source на кусок NewStr bool replace(char *source, char *OldStr, char *NewStr) { char *ptr, *pt, *bf; if((ptr = strstr(source, OldStr)) ==NULL) return 0; pt =ptr; ptr +=strlen(OldStr); bf = new char[strlen(ptr)+1]; strcpy(bf, ptr); *pt ='\0'; strcat(pt, NewStr); strcat(pt, bf); delete []bf; return true; }