Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15

Как перевести строку в читабельный вид?

11.02.2012, 12:58. Показов 7325. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно из названия темы. Есть строка символов (к примеру такая: 0430002004370430043904340438)
Как перевести ее в читабельный вид, т.е в текст. Уже всю голову сломал Подскажите что прочитать(ссылочку если можно)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2012, 12:58
Ответы с готовыми решениями:

Прилетают данные UTF-8, как правильно преобразовать в читабельный вид?
Как преобразовать вот это: cout << buf<<endl; Выдает в UTF-8 кодировке: 01%3Aasd+%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9 ...

Как написать читабельный код
Здравствуйте, я программирую на C++, и вот вижу, что у других программистов код не такой, как у меня. У других куча комментариев, всяких...

Как перевести строку в число?
есть строка вида 14-09-2015 надо перевести в дату как?

56
11.02.2012, 14:01

Не по теме:

Цитата Сообщение от dimmu Посмотреть сообщение
Есть строка символов (к примеру такая: 0430002004370430043904340438)
Как перевести ее в читабельный вид, т.е в текст.
- дружище это может быть MD5-hash или ещё что, мы что угадать должны что в ней???Хоть бы описание дал, что это згрупированные цифры и между ними пробел поставить или закодированный текст?!Если закодированный текст - укажи алгоритм, а то поцепил невесть что - и теперь людям сиди ломай голову что же тебе надобно...

0
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
11.02.2012, 14:39  [ТС]
офтоп
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
мы что угадать должны что в ней?
не правильно я вопрос поставил


Допустим есть строка s="\u0430\u0020\u0437\u0430\u0439\u0434\ u0438", где "\u0430"=>"а" и тд. Каким образом перевести строку в буквы.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 14:55
dimmu, вот это и нужно было мне услышать
Цитата Сообщение от dimmu Посмотреть сообщение
s="\u0430\u0020\u0437\u0430\u0439\u0434\ u0438", где "\u0430"=>"а"
Нужна таблица ключей - набери текст абвгде... и пришли эту строку, будет понятно что соответсвует символу а, что символу б и т.д., а там до божеского вида рукой подать

Добавлено через 5 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
\u0430"=>"а"
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
u0439
- можно предположить что это а + 9 т.е з ну или i если латиница, а тогда что такое u0020???Поэтому и говорю нужна таблица декодинга коей будет являться буквы алфавита с их символьными эквивалентами u****
0
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
11.02.2012, 14:57  [ТС]
Спасибо за подсказу
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.02.2012, 15:35
Я думаю, что ТС'у попросту нужно объяснить, как распечатать юникодовскую строку
0
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
11.02.2012, 16:30  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
что ТС'у попросту нужно объяснить
лишним не будет
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 16:46
Цитата Сообщение от dimmu Посмотреть сообщение
лишним не будет
- приведи алфавит, сделаю вывод, я грешным делом думал что после этих слов
Цитата Сообщение от dimmu Посмотреть сообщение
Спасибо за подсказу
ты уже сам всё написал. Хорошо в чём или где ты встретил текст указанный тобой?(Как по мне чем-то похоже на RTF...)
0
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
11.02.2012, 17:25  [ТС]
офтоп
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
грешным делом думал что ]ты уже сам всё написал
появилась идея, пока в жизнь не воплощал. И так с 10 почти за компом
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
в чём или где ты встретил текст
изначально это текст смс. из бекапа данных. Осталось только научить програмку переводить строку в нормальный текст и готово
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 17:33
dimmu, напиши 1 см с абвгде... запихни в бэкап, а потом пришли, мне кажется ходим вокруг да около вместо того чтобы за 3 минуты написать программу...

Не по теме:

PS:

Цитата Сообщение от dimmu Посмотреть сообщение
офтоп
- зачем ты так пишешь - ты ТС и вправе писать всё что хочешь по поводу решения своего задания, тое людей пугаешь надписью:)

0
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
11.02.2012, 18:01  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
напиши 1 см с абвгде... запихни в бэкап
упорно не могу этого понять %)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 18:05
Цитата Сообщение от dimmu Посмотреть сообщение
упорно не могу этого понять %)

Твоё смс должно содержать алфавит абвгде... цифрі можно 12345 знаки какие нибудь .,!? и т.д.
В твоём бекапе получится что-то вроде
\u0430\u0020\u0437\u0430\u0439\u0434\u04 38\u0430\u0020\u0437\u0430\u0439\u0434\u 0438\u0430\u0020\u0437\u0430\u0439\u0434 \u0438...
Понятное дело что первые uxxx будут соответсвовать а, вторые б, и т.д. Я уже устал говорить нужна таблица декодирования!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.02.2012, 18:16
Лучший ответ Сообщение было отмечено как решение

Решение

Извините, не удержался. Я традиционно ничерта не понимаю, как заставить под виндой в консоли печатать нормальные русские буквы, а потому текст сбрасываю в файл. Код функции unicode_to_1251 содрал в инете, автор - npak. В файл у меня записалось "а зайди", что говорит о том, что перекодирование сделано правильно. Надеюсь, до ума программу доведёте сами

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <windows.h>
#include <stdio.h>
 
static char * unicode_to_1251(wchar_t *unicode_string)
{
    int err;
    char * res;
    int res_len = WideCharToMultiByte(
        1251,               // Code page
        0,                  // Default replacement of illegal chars
        unicode_string,     // Multibyte characters string
        -1,                 // Number of unicode chars is not known
        NULL,               // No buffer yet, allocate it later
        0,                  // No buffer
        NULL,               // Use system default
        NULL                // We are not interested whether the default char was used
        );
    if (res_len == 0)
    {
//      printf("Failed to obtain required cp1251 string length\n");
        return NULL;
    }
    res = (char*) calloc(sizeof(char), res_len);
    if (res == NULL)
    {
//      printf("Failed to allocate cp1251 string\n");
        return NULL;
    }
    err = WideCharToMultiByte(
        1251,               // Code page
        0,                  // Default replacement of illegal chars
        unicode_string,     // Multibyte characters string
        -1,                 // Number of unicode chars is not known
        res,                // Output buffer
        res_len,            // buffer size
        NULL,               // Use system default
        NULL                // We are not interested whether the default char was used
        );
    if (err == 0)
    {
//      printf("Failed to convert from unicode\n");
        free(res);
        return NULL;
    }
    return res;
}
 
int main(int argc, char* argv[])
{
    char str[] = { 0x30, 0x04, 0x20, 0x00, 0x37, 0x04, 0x30, 0x04,
                   0x39, 0x04, 0x34, 0x04, 0x38, 0x04, 0x00, 0x00 };
    FILE *fp;
 
    fp = fopen ("C:\\a.txt", "w");
    fprintf (fp, "%s\n", unicode_to_1251 (str));
    fclose (fp);
 
    return 0;
}
Добавлено через 1 минуту
Если кто-то будет доводить до ума, надо учесть, что пары 16-ричных чисел надо писать в массив в обратном порядке (из-за little endian на i386)
3
11.02.2012, 18:35

Не по теме:

Evg, спасибо что прекратил страдание ТС и мои тоже:jokingly:

0
Evg
11.02.2012, 18:37

Не по теме:

Страдания ТС'а прекратятся после того, как ему программу для перекодирования выдадут :)

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 18:41
dimmu, вот что я от тебя добивался
Цитата Сообщение от Evg Посмотреть сообщение
"а зайди"
Цитата Сообщение от Evg Посмотреть сообщение
har str[] = { 0x30, 0x04, 0x20, 0x00, 0x37, 0x04, 0x30, 0x04,
* * * * * * * * * *0x39, 0x04, 0x34, 0x04, 0x38, 0x04, 0x00, 0x00 };
- вот я и просил у тебя
абвгде...что бы посмотреть как это будет выглядеть в 16-ричке.

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Страдания ТС'а прекратятся после того, как ему программу для перекодирования выдадут
- ок сейчас поработаю с MultyyteToWideChar чтобы алфавит в го стиле
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
\u0438
записать...

Добавлено через 1 минуту
dimmu, пока работаю см сюда
Создание файла в UTF-8 кодировке
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.02.2012, 18:42
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
dimmu, вот что я от тебя добивался
А ты ради интереса прочти то, что ты написал. И прикинь, сколько шансов было у неспециалиста понять, чего ты от него хочешь
0
11.02.2012, 18:56

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
А ты ради интереса прочти то, что ты написал. И прикинь, сколько шансов было у неспециалиста понять, чего ты от него хочешь
- мне иногда говорят что общаюсь на одному мне понятном языке:)
Я хотел от него смс чтобы можно было построить таблицу соответсвия
a - \u0430
б - \u0431
и т.д.
Всего пара минут щелчков на телефоне и всё вот она таблица перекодировки готова, только вставляй в код дешифровщика, дык как по мне по другому и не спросишь за это:scratch:

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 20:00
Теперь к коду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <windows.h>
#include <iostream>
#include <fstream>
#include <clocale>
#include <string>
using namespace std;
 
char * Utf2Ascii(WCHAR*lpw)
{
    long uLen = WideCharToMultiByte(CP_ACP, 0, lpw,   -1,  NULL, NULL, NULL, NULL);
    char *str = new char[uLen];
                WideCharToMultiByte(CP_ACP, 0, lpw, uLen,  str , uLen, NULL, NULL);
    return str;
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    string text;
    string line;
    WCHAR  *lpw = new WCHAR[2];
    WCHAR  *add = 0;
    char * sout = 0;
    long fpos = -1;
    long code = -1;
    long nchr = 0;
    ifstream ifs("sms.txt");
    if(!ifs)
        cout<<"Не могу открыть sms.txt\n";
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout<<"Данные файла :\n"<<text<<endl;
        while((fpos = text.find("\\u",fpos + 1)) != -1)
        {
            line = text.substr(fpos + 2,4);
            code = atoi(line.c_str());
            lpw[nchr] = code;
            nchr++;
            //Динамически алочим память для lpw
            add = new WCHAR[2];
            lpw[nchr] = add[0];
        }
        lpw[nchr] = 0;
        if(!(sout = Utf2Ascii(lpw)))
            cout<<"Ошибка преобразования\n";
        else
        {
            cout<<"Преобразованные данные :\n"<<(sout = Utf2Ascii(lpw))<<endl;
            delete [] sout;
        }
    }
    system("pause");
    return 0;
}
Как видно из результатов работы
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
\u0430\u0020\u0437\u0430\u0439\u0434\u04 38\u0430\u0020\u0437\u0430\u0439\u0434\u 0438\u0430\u0020\u0437\u0430\u0439\u0434 \u0438...
- это если и коды UTF-8 то возможно я неправильно их переводил,Evg, натолкни на мысль, мне уже самому интересно стало!!!
Миниатюры
Как перевести строку в читабельный вид?  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.02.2012, 20:05
PS dimmu,
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Я хотел от него смс чтобы можно было построить таблицу соответсвия
a - \u0430
б - \u0431
и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2012, 20:05
Помогаю со студенческими работами здесь

Как перевести строку в BSTR*
Как перевести обычную строку в BSTR* ???

Как перевести массив в строку?
я хочу чтобы можно было вводить какую нибудь строку,чтобы она переводилась в заглавные или прописные буквы...о как это сделать , я не знаю...

Перевести символ в двичный вид
Добрый день, помогите пожалуйста перевести символ в двичный вид, я не совсем понимаю, как это делается, спасибо большое! Символы у меня в...

перевести с турбо паскаля в с++ вид
type konf=record name: string; cena:integer; god:integer; mag:integer; end; var kon: array of konf; I,k,max:...

Как перевести строку в hex и обратно?
Немогу найти в гугле функцию какбы перевести строку в hex и обратно, мб у кого завалялась?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru