Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
#1

ANSI to Unicode - C++

03.12.2012, 17:16. Просмотров 1201. Ответов 4
Метки нет (Все метки)

Hi all. Вопрос к экспертам

Хочу сохранить строку текста (кириллица) в текстовый файл. Строка в ANSI, а нужно сконвертировать в Юникод.
Как сконвертировать в UTF-8 я разобрался, а как именно в Юникод (просто Юникод, не "Unicode Big Endian")?
Делается это в консольном приложении. Понятно, что это что-то простенькое, но что-то не пойму:

C++
1
2
3
4
5
6
7
int MAX = 1000
char plaintxt[MAX];
wchar_t unicodetxt[MAX];
 
MultiByteToWideChar(???, 0, plaintxt, MAX, unicodetxt, MAX);
 
wcout << unicodetxt << endl;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 17:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ANSI to Unicode (C++):

ANSI и UNICODE - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main(){ TCHAR j; return 0;

ANSI to Unicode - C++
Всем доброго времени суток! Есть задачка преобразовать строку в cp1251 в строку в unicode и сохранить ее в файл в кодировке unicode...

Перевод из Unicode в ANSI - C++
Привет! При переводе из Unicode в ANSI юзаю вот эти две функции: CharToOemW и OemToCharA. Первая переводит из Unicide в Oem, а вторая - из...

Как конвертировать Unicode в Ansi? - C++
Я написал свою функцию конвертирования из Unicode в Ansi, но она не правильно кодирует символы русского языка. Как такое исправить? ...

Перевести Unicode строку в ANSI - C++
char label_ansi; wchar_t label_wide; sprintf_s (label_ansi, &quot;%ls&quot;, label_wide); // работает, но если и когда появляется не-ascii...

Перевод из unicode в ansi и utf8 - C++
Подскажите, пожалуйста, как перевести unicode строку в ansi и utf8? Добавлено через 7 часов 32 минуты Никто не знает?:(

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
03.12.2012, 17:43 #2
CP_ACP попробуй в качестве кодировки. wcout не умеет выводить wchar'ы правильно под Windows.
0
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
03.12.2012, 17:45  [ТС] #3
Цитата Сообщение от Герц Посмотреть сообщение
CP_ACP попробуй в качестве кодировки. wcout не умеет выводить wchar'ы правильно под Windows.
Пробовал. Именно что CP_ACP. Не выводит вообще ничего - ни в файл (я пытался), ни в консоль.
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
03.12.2012, 17:52 #4
В коде который ты привел нет конверсии в UTF-8, что же ты в файл выводил тогда?
0
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
03.12.2012, 19:28  [ТС] #5
Цитата Сообщение от Герц Посмотреть сообщение
В коде который ты привел нет конверсии в UTF-8, что же ты в файл выводил тогда?
Вот так вот выглядит текст, который по идее должен выводить в файл:

C++
1
2
3
MultiByteToWideChar(CP_ACP, 0, plaintxt, MAX, unicodetxt, MAX);
outFile.imbue(locale("CP_ACP"));
outFile << unicodetxt << endl
Если это не правильно, то как правильно? С ANSI такой подход прекрасно работает. Файл, естественно, ассоциирован с потоком ofstream и все такое.

Добавлено через 1 час 31 минуту
Guys, неужели никто не знает?

Мне кажется, нужно не:
MultiByteToWideChar(CP_ACP, 0, plaintxt, MAX, unicodetxt, MAX);

а что-то другое вместо CP_ACP

Или не все так просто?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 19:28
Привет! Вот еще темы с ответами:

Unicode, UTF-8 и ANSI в одном консольном приложении. Можно ли "на лету" конвертировать массив строк? - C++
Всем доброго дня) Подскажите такую весчь: можно ли в консольном приложении работать с несколькими кодировками? Нужно считать файлик в...

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF) - C++
Есть следующий кусок кода: FILE* fp = fopen(&quot;G:\OPND1.txt&quot;, &quot;r&quot;); if (fp!=NULL) // если файл удалось открыть { while((ch =...

ANSI или UNICODE - C++
Всем привет!!! У меня возникла такая ситуация что использовать в WinApi программирование ANSI или UNICODE, где-то читал, что UNICODE...

ANSI C - C++
Приветики ! Срочно нужно закрыть сессию,но никак не могу сделать несколько прог... помогите плиз, если не трудно =( 1.Написать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2012, 19:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru