Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2018, 14:53   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Drekon Посмотреть сообщение
MultiByteToWideChar не подходит для перекодировки, которая написана в посте 1 - русский текст искажается и пробелы подставляются между символами.
Что явно говорит, что выводите вы юникод неправильно.

Цитата:
Сообщение от Drekon Посмотреть сообщение
Я так понимаю, что MultiByteToWideChar перекодирует в юникод. Значит нужно перекодировать именно в ANSI.
Может я там не зря две функции написал? Сначала из одной кодировки в юникод, потом из юникода в нужную кодировку.

Цитата:
Сообщение от Drekon Посмотреть сообщение
Просто нужно перкодировать текст, получаемый из программы CMD (командная строка).
Тогда может в cmd просто дать команду chcp 1251 и забыть о перекодировках?
p51x на форуме Ответить с цитированием
Старый 29.05.2018, 15:42   #12
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

p51x, да сработало с использованием двух функций.
Drekon вне форума Ответить с цитированием
Старый 29.05.2018, 16:32   #13
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

p51x, я создал здесь тему про CMD, чтобы в этой теме не было лишнего. Можете посмотреть?
http://www.programmersforum.ru/showt...28#post1737028
Drekon вне форума Ответить с цитированием
Старый 29.05.2018, 19:54   #14
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

Аватар, функция "OemToChar" решила поставленную задачу, при чём эта функция легка в использовании. Но в офиц. справке написано: Warning Do not use. See Security Considerations.
Поэтому пока не понятно, что делать.

Функция "OemToCharBuff" искажает русский текст. Пока не знаю, как её использовать.
Drekon вне форума Ответить с цитированием
Старый 29.05.2018, 22:33   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Только учтите, что оем он может быть разным...
p51x на форуме Ответить с цитированием
Старый 29.05.2018, 22:37   #16
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

Но функции OemToChar не спрашивают, какая у меня кодировка.
Drekon вне форума Ответить с цитированием
Старый 29.05.2018, 23:20   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Потому что оно уже в названии. OEM же. А если прочитать доку на туже MultiByteToWideChar
Цитата:
The current system OEM code page.

Note This value can be different on different computers, even on the same network. It can be changed on the same computer, leading to stored data becoming irrecoverably corrupted. This value is only intended for temporary use and permanent storage should use UTF-16 or UTF-8 if possible.
p51x на форуме Ответить с цитированием
Старый 30.05.2018, 07:48   #18
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

А какое отношение к проблеме имеет функция "MultiByteToWideChar"? В функцию "MultiByteToWideChar" мы явно передаём имена кодировок.
Drekon вне форума Ответить с цитированием
Старый 30.05.2018, 08:28   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Именно. MultiByteToWideChar умеет из разных кодировок, в том числе из OEM. А OemToChar умеет только из OEM.
Но вообще и это не важно. Вы считаете, что понятие OEM кодировки меняется в зависимости от того, какую страницу офф хелпа вы читаете?
p51x на форуме Ответить с цитированием
Старый 30.05.2018, 08:54   #20
Drekon
Пользователь
 
Регистрация: 25.04.2018
Сообщений: 45
По умолчанию

Я вообще не знаю, что такое OEM-кодировка и не хочу гуглить на эту тему.
Как я понял Вас, проблема с функциями "OemToChar" в том, что явно не указывается кодировка, поэтому поведение этих функций непредсказуемо.
Drekon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодирование и перекодирование Esoone Общие вопросы Delphi 1 20.11.2012 16:00
Перекодирование видео потока в Smooth Streaming Cronos20 WPF, UWP, WinRT, XAML 0 10.05.2011 21:18
Перекодирование русских текстов на C# Donix Помощь студентам 0 07.05.2011 12:51
перекодирование MySQL Бд mrgrudge PHP 3 16.12.2010 14:24
Перекодирование StudentPolitech Свободное общение 0 04.07.2009 21:49