![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.07.2013
Сообщений: 9
|
![]()
Здравствуйте.
Проект на си пишется в Visual Studio 08 Общий смысл проблемы таков : на вход поступают строки данных в кодировке UTF-8 их нужно разбирать и т.д. В строке кроме английского алфавита присутствуют и русские буквы откуда проистекают следующие проблемы : 1.Отображается абракадабра при отладке в VS (как сказать студии шта он не прав?) 2.Слово в 4 символа занимает 8ячеек в массиве char 3.При разборе строки стандартными ф-ями си из ctype.h типа isalpha() происходят ошибки проблема вывода текста на консоль решилась SetConsoleCP(65001); SetConsoleOutputCP(65001); + выбор шрифта Lucidia... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
так и в чем проблема то?
перевели бы в UTF16(точнее подмножества UCS2 что применен в винде) там стабильно каждый символ это два байта wchar_t. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 04.07.2013
Сообщений: 9
|
![]() Цитата:
какой способ здесь будет амым быстрым? |
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 04.07.2013
Сообщений: 9
|
![]()
и как заставить студию адекватно воспринимать строки в отладчике?
подозреваю что где-то пару галок надо поставить |
![]() |
![]() |
![]() |
#5 |
Регистрация: 04.07.2013
Сообщений: 9
|
![]()
Интересно что в описании длл-ки которая шлет данные
функция - приемник описывается как typedef bool (*tcallback)(BYTE* pData); тоесть получаем * на BYTE а байт-это unsigned char значит ли это что код любого символа здесь вмещается в unsigned char? а если нет почему был вабран именно BYTE а байт-это unsigned char а не двухбайтовый w_char? |
![]() |
![]() |
![]() |
#6 | ||
Форумчанин
Регистрация: 24.12.2012
Сообщений: 639
|
![]() Цитата:
Цитата:
ICQ: 677936656 Gmail: ekEmbed@gmail.com
|
||
![]() |
![]() |
![]() |
#7 | |
Регистрация: 04.07.2013
Сообщений: 9
|
![]() Цитата:
1. Приходят данные в виде unsigned char где некоторые комбинации соседних байтов(если кирилица) нужно собирать в код 1 символа 2. для работы с такими данными без перегонки строки в двухбайтовый wchar_t никак не обойтись если это так какой способ будет самым быстрым? MultiByteToWideChar ? 3. стандартные ф-ии str (* char) ctype.h никак не пригодны - юникод это ф-ии типа size_t wcslen(const wchar_t* szString) ? |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]() |
![]() |
![]() |
![]() |
#9 |
Регистрация: 04.07.2013
Сообщений: 9
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Для того, чтоб парсить XML вовсе не надо конвертировать поток.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Русские буквы в \u символы | J-Max | Общие вопросы Delphi | 4 | 01.07.2012 19:35 |
Русские символы в консоле | pimple2006 | Общие вопросы Delphi | 2 | 16.12.2011 10:50 |
Русские символы | Akord | Общие вопросы C/C++ | 0 | 26.09.2010 11:17 |
Expression Studio и Visual Studio 2010 ждать ли русские версии? | Casper-SC | Свободное общение | 31 | 25.05.2010 14:31 |
как конвертнуть русские символы.(Visual Studio.Net) | reyn90 | Помощь студентам | 0 | 05.01.2010 13:32 |