Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207

Как перевести строку с 16-ричной записью символа юникода в сам символ

30.10.2015, 14:30. Показов 4190. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как перевести строку с 16-ричной записью символа юникода в сам символ?
т.е. на входе есть string s1="90b73447769de4400800000010c7e0f8f3ec ebe5ededeef1f2fc20f1e8000000000000000000 000000

а на выходе нужно получить string s2="Зашумленность"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2015, 14:30
Ответы с готовыми решениями:

По коду символа получить сам символ
как по коду символа получить сам символ? например есть символ 'a' с помощью команды Ord узнаем его целочисленный код, как по этому коду...

Ошибка (записывается код символа, а не сам символ)
есть строка символов (принял из EditBox) CString str; const char *strС; strС=(const char*) str; нужно число преобразовать...

По коду символа в переменную поместить сам символ
Здравствуйте. Мне необходимо написать 2 программы на ассемблерных вставках: 1)Даны две переменных cod (тип byte) и c (тип char).В...

9
 Аватар для BroDMax
157 / 156 / 104
Регистрация: 01.10.2015
Сообщений: 310
30.10.2015, 15:04
SVD102, откуда взята такая последовательность?
Слово "Зашумленность" в кодировке Unicode выглядит следующим образом:
Code
1
17 04 30 04 48 04 43 04 3c 04 3b 04 35 04 3d 04 3d 04 3e 04 41 04 42 04 4c 04
0
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
30.10.2015, 15:16  [ТС]
В прикрепленом файле посмотрите.
Миниатюры
Как перевести строку с 16-ричной записью символа юникода в сам символ  
0
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
30.10.2015, 15:18  [ТС]
тут
Миниатюры
Как перевести строку с 16-ричной записью символа юникода в сам символ  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18296 / 14220 / 5368
Регистрация: 17.03.2014
Сообщений: 28,897
Записей в блоге: 1
30.10.2015, 17:11
SVD102, это не похоже на Unicode. Кодировка windows-1251 подошла, с той оговоркой что перед текстом "Зашумленность си" там идет мусор. Откуда эта строка берется?

Декодировщик
C#
1
2
3
4
5
6
7
string s1 = "90b73447769de4400800000010c7e0f8f3ecebe5ededeef1f2fc20f1e8000000000000000000000000";
byte[] buf = new byte[s1.Length/2];
for (int i=0; i<s1.Length; i+=2)
{
    buf[i/2] = Convert.ToByte(s1.Substring(i,2), 16);
}
string s2 = Encoding.GetEncoding("windows-1251").GetString(buf);


Добавлено через 1 минуту
SVD102, раз ты читаешь побайтово некий *.rpt файл, то для получения корректного результата нужно знать формат этого файла.

Добавлено через 1 час 40 минут
и, кстати говоря, при чтении подобного файла на входе у тебя будет массив байтов, а не строка из чисел в 16й форме.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.10.2015, 19:01
SVD102, на скриншоте же видно, что строка начинается с "c7e0f8..."
0
1 / 1 / 1
Регистрация: 12.10.2015
Сообщений: 207
02.11.2015, 07:22  [ТС]
Я прикрепил 2 файла, посмотрите пожалуйста. Как мне лучше будет считать данные с файла побайтно или другим способом. В дальнейшем мне надо будет построить графики, используя эти данные. И еще, как узнать какая кодировка используется в файле?a
Вложения
Тип файла: zip rpt.zip (1.16 Мб, 4 просмотров)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.11.2015, 12:42
SVD102, Никак. Можно только угадать попытаться, для этого есть специальные библиотечки. Но и они это делают с некоторой долей уверенности в ответе
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18296 / 14220 / 5368
Регистрация: 17.03.2014
Сообщений: 28,897
Записей в блоге: 1
02.11.2015, 13:02
SVD102, берешь класс BinaryReader и читаешь. Вот код который читает информацию об этапах. Остальные данные прочитаешь по аналогии. Кстати в документации похоже ошибка. Там сказано что название этапа занимает 64 байта, когда на самом деле там 72. Мой код эти 8 байтов пропускает, но возможно их нужно считать частью строки. Также обрати внимание что перед строками записывается их длина.
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
using (var fstream = File.OpenRead(@"C:\reports\03_08_2015 12_31_23#01.rpt"))
using (var reader = new BinaryReader(fstream))
{
    int etCnt = reader.ReadInt32();
    Et[] ets = new Et[etCnt];
    for (int i=0; i<etCnt; i++)
    {
        ets[i] = ReadEt(reader);
    }
}
 
// ...
static Et ReadEt(BinaryReader reader)
{
    double binDate = reader.ReadDouble();
    DateTime date = DateTime.FromOADate(binDate);
    
    byte[] binName = reader.ReadBytes(64);
    string name = Encoding.GetEncoding(1251).GetString(binName, 1, binName[0]);
    
    // Пропускаем 8 байтов т.к. в документации похоже ошибка
    reader.BaseStream.Position += 8;
    
    return new Et(date, name);
}
 
struct Et
{
    public DateTime DateAndTime;
    public string Name;
    
    public Et(DateTime dateAndTime, string name)
    {
        DateAndTime = dateAndTime;
        Name = name;
    }
}
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.11.2015, 13:04
SVD102, поправка, если формат файла неизвестен, то никак. Если известен (и это *.rpt), то да, в документации все будет написано (выше ответили).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2015, 13:04
Помогаю со студенческими работами здесь

Заменить в строке обозначение символа с заданным кодом на сам символ
Помогите, пожалуйста... Срочно надо лабу сдать. Заменить в строке принятое в Си обозначение символа с заданным кодом (например, \101) на...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru