![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]()
Есть указатель на char, хранящий адрес нуль-терминальной строки в CP_ACP. Требуется получить std::u32string в кодировке UTF32. Желательно без промежуточных нуль-терминальных строк в иных кодировках. Можно как то надёжно преобразовать отдельный символ, чтоб потом скормить его оператору плюс равно? Есть ли гарантия, что в CP_ACP каждый символ занимает ровно 1 байт? И есть ли гарантия, что он влезет в UTF16?
Последний раз редактировалось taras-proger; 02.12.2015 в 12:20. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
для ANSI-1251(русская по умолчанию) например это точно да. но есть и иные. Цитата:
в UTF в любой влезает все. на то она многобайтовая. не понимаю что вы вообще пытаетесь сделать? винда не работает с UTF32 в принципе. да и с UTF-16 работает лишь с частью(что занимает 2 байта) а так пример же http://en.cppreference.com/w/cpp/str...ibyte/mbrtoc32 Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
![]() |
![]() |
![]() |
#3 | |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]() Цитата:
Целевая UTF32, промежуточные UTF16 и UTF8. Есть ли гарантия, что после преобразования из CP_ACP в UTF16 код любого символа влезет ровно в два байта? Последний раз редактировалось Stilet; 02.12.2015 в 13:17. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,371
|
![]()
Нет, такой гарантии нет.
|
![]() |
![]() |
![]() |
#5 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]()
То есть символ может быть и многобайтным? Может ли функция
Код:
Последний раз редактировалось taras-proger; 02.12.2015 в 13:33. |
![]() |
![]() |
![]() |
#6 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]()
Есть адрес символа в CP_ACP. Как узнать правильное значение четвёртого параметра функции MultiByteToWideChar? То есть как узнать, сколько байт реально занимает символ CP_ACP? UTF-8 просто, там первый байт содержит префикс длины. А в CP_ACP как? Есть для этого какая нибудь системная функция?
|
![]() |
![]() |
![]() |
#7 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
И да, если пишите прогу не для внутреннего использования, то учитывать локаль надо и преобразовывать тоже, а то будет как у некоторых программ, которые не могу в профиль писать, если имя пользователя на русском или японском. ![]() Цитата:
Цитата:
Цитата:
Последний раз редактировалось p51x; 02.12.2015 в 16:40. |
||||
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#9 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]()
При том, что систему делал не болэнд. Если бы они конкретно и при этом адекватно завелосипедили уникод и повесили именно такой велосипед на дефолт, тогда перевод из него в стандартный и наоборот хоть как то понятен. Но у них у самих полный разброд с шатаниями, странно ещё, что восемь коей с ансями не перемешаны.
|
![]() |
![]() |
![]() |
#10 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как преобразовать строку в название константу или её индификатор | androidz | Общие вопросы Delphi | 10 | 27.02.2014 21:33 |
Как сохранить область на странице вhtml или как картинку или в pdf ? | xxxsas | PHP | 0 | 10.12.2011 12:02 |
Как сделать MD5 строки в utf8? | Anfall | Общие вопросы Delphi | 4 | 04.08.2011 16:54 |
Http.Get, Парсинг UTF8, знак - отображается как ? Как декодировать? | XerSon | Работа с сетью в Delphi | 6 | 10.02.2011 08:37 |
Как получить адрес String строки или преобразовать String | madboy4ik | Общие вопросы по Java, Java SE, Kotlin | 6 | 15.01.2010 11:57 |