Page 1 of 1

перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Sat Oct 21, 2017 1:52 am
by cutecode
Как понять что тут написано?
Или как первести это в wxString?

Я отпрвляю запрос на WEB службу, а в ответ получаю это и не пойму как это перевести на нормальный язык

Code: Select all

<ErrText xsi:type="xsd:string">
         [truncated]\320\235\320\265\320\264\320\276\320\277\321\203\321\201\321\202\320\270\320\274\320\276\320\265 \320\267\320\275\320\260\321\207\320\265\320\275\320\270\320\265 \320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\
</ErrText>
  

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Mon Oct 30, 2017 9:02 pm
by ONEEYEMAN
Dobrogo vremeni sutok,
V kakom brauzere otobragaete rezultat? Kakaja kodirovka stoit v brauzere? Kakaja kodirovka u WEB-prilogenija?

Spasibo.

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Mon Oct 30, 2017 10:01 pm
by cutecode
Это ни в браузере, а перехват ч/з WireShark.
В code::blocks тоже самое показывает
Там походу буфер Unicode строки показывается, но не знаю как это перевести в wxString

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Tue Oct 31, 2017 1:31 am
by cutecode
точнее я получаю строку

Code: Select all

	//так я вижу эту переменную в code::blocks
	std::string str = "\320\235\320\265\320\264\32 и т.д."
Перепробовал из этих примеров
https://wiki.wxwidgets.org/Converting_e ... m_wxString

ничего не помогло

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Tue Oct 31, 2017 1:41 am
by ONEEYEMAN
Доброго времени суток,
А Вы уверены что это именно текст а не что-то другое?

Спасибо.

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Tue Oct 31, 2017 2:44 am
by cutecode
да, это ответное сообщение об ошибке в моём запросе

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Tue Oct 31, 2017 12:42 pm
by ONEEYEMAN
В какой кодировке работает сервер?

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Tue Oct 31, 2017 1:40 pm
by cutecode
в WSDL написано UtF-8

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Wed Nov 01, 2017 1:56 pm
by T-Rex
Для С++ это не валидное написание Unicode-символов.
Должно быть как-то так:

Code: Select all

char b = '\u0444';
Если приходит прям в таком виде, как в описании поста, то только парсить, при чем \320 это три символа в строке сейчас: '\3', '2', '0'
Можешь выложить файл дампа Wireshark? Так будет проще понять, что происходит и какая там кодировка.
Как вариант, взять файл дампа, открыть в Notepad++, поиграться с кодировками и посмотреть в какой он отображается как читаемый текст, потом программно преобразовать текст через что-то из wxMBConv.

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Sun Nov 05, 2017 5:19 pm
by cutecode
только щас догадался как сделать дамп

напомню, я получаю ответ в строку типа std::string

Re: перевести в wxString \320\235\320\265\320\264\32 и т.д.

Posted: Mon Nov 06, 2017 4:05 pm
by T-Rex
Вот прям чтобы std::string... как-то так, на скорую руку:

Code: Select all

void test()
{
	char filename[] = "2.txt";
	struct stat stat_buf;
	int rc = stat(filename, &stat_buf);
	size_t file_length = rc == 0 ? stat_buf.st_size : 0;
	if (file_length == 0) return;
	FILE * fp = fopen(filename, "r");
	if (fp)
	{
		char * text = new char[file_length+1];
		memset(text, 0, file_length + 1);
		size_t data_length = fread(text, sizeof(char), file_length, fp);
		text[data_length] = 0;
		printf("Data: 5%s\n", text);
		std::string tmp(text, data_length);
		wxString message = wxConvUTF8.cMB2WX(tmp.c_str());
		wxMessageBox(message);
		delete[] text;
		fclose(fp);
	}
}
Получаю такое:
https://www.screencast.com/t/JeRe1J7gELu