|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.12.2015, 11:21 | #1 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Как преобразовать CP_ACP в UFT32?
Есть указатель на char, хранящий адрес нуль-терминальной строки в CP_ACP. Требуется получить std::u32string в кодировке UTF32. Желательно без промежуточных нуль-терминальных строк в иных кодировках. Можно как то надёжно преобразовать отдельный символ, чтоб потом скормить его оператору плюс равно? Есть ли гарантия, что в CP_ACP каждый символ занимает ровно 1 байт? И есть ли гарантия, что он влезет в UTF16?
Последний раз редактировалось taras-proger; 02.12.2015 в 12:20. |
02.12.2015, 12:43 | #2 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
для ANSI-1251(русская по умолчанию) например это точно да. но есть и иные. Цитата:
в UTF в любой влезает все. на то она многобайтовая. не понимаю что вы вообще пытаетесь сделать? винда не работает с UTF32 в принципе. да и с UTF-16 работает лишь с частью(что занимает 2 байта) а так пример же http://en.cppreference.com/w/cpp/str...ibyte/mbrtoc32 Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
02.12.2015, 12:50 | #3 | |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Цитата:
Целевая UTF32, промежуточные UTF16 и UTF8. Есть ли гарантия, что после преобразования из CP_ACP в UTF16 код любого символа влезет ровно в два байта? Последний раз редактировалось Stilet; 02.12.2015 в 13:17. |
|
02.12.2015, 12:57 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Нет, такой гарантии нет.
|
02.12.2015, 13:27 | #5 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
То есть символ может быть и многобайтным? Может ли функция
Код:
Последний раз редактировалось taras-proger; 02.12.2015 в 13:33. |
02.12.2015, 13:40 | #6 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Есть адрес символа в CP_ACP. Как узнать правильное значение четвёртого параметра функции MultiByteToWideChar? То есть как узнать, сколько байт реально занимает символ CP_ACP? UTF-8 просто, там первый байт содержит префикс длины. А в CP_ACP как? Есть для этого какая нибудь системная функция?
|
02.12.2015, 16:38 | #7 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
Цитата:
И да, если пишите прогу не для внутреннего использования, то учитывать локаль надо и преобразовывать тоже, а то будет как у некоторых программ, которые не могу в профиль писать, если имя пользователя на русском или японском. Цитата:
Цитата:
Цитата:
Последний раз редактировалось p51x; 02.12.2015 в 16:40. |
||||
02.12.2015, 16:46 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
02.12.2015, 17:45 | #9 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
При том, что систему делал не болэнд. Если бы они конкретно и при этом адекватно завелосипедили уникод и повесили именно такой велосипед на дефолт, тогда перевод из него в стандартный и наоборот хоть как то понятен. Но у них у самих полный разброд с шатаниями, странно ещё, что восемь коей с ансями не перемешаны.
|
02.12.2015, 17:47 | #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 |