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

Utf8-Utf16 и назад. КАК? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
Fimich
Сообщений: n/a
13.03.2011, 02:11     Utf8-Utf16 и назад. КАК? #1
Задание: реализовать 2 функции, которые заданный файл будут перекодировать из Utf8/Utf16 в Utf8/Utf16.
bool UTF8toUTF16 (const char * src, const char * dst );
bool UTF16toUTF8 (const char * src, const char * dst );

Описание:
Для кодировки национальных знаков лучше использовать UNICODE. Например код А 65, знак Ž - 381. UNICODE резервирует знаки от 0 до 2^20 + 2^16. Такие числовые значения, конечно, не получится сохранить в 1 байт.

Исходный файл (src) только для чтения, конечный файл (dst) будет функцией переписан. Функция возвращает true, если перевод был проведен, в противном случае false. Ошибки:

при чтении, записи, создании файла;
неверное содержание файла (не UTF16/UTF8);
В UNICODE нет:
знаков, позиции которых равны или выше, чем 2^20 + 2^16 и
surrogate pairs (0xd800 - 0xdfff).
Остальные нормально.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2011, 02:11     Utf8-Utf16 и назад. КАК?
Посмотрите здесь:

C++ Посимвольная обработка UTF8 строки
C++ UTF8 To Char
C++ Можно ли читать UTF8 в std::wstring потоком?
Преобразование String UTF8 в 1251 C++
Неправильный вывод UTF8 строки вместе с setw C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
13.03.2011, 02:16     Utf8-Utf16 и назад. КАК? #2
Fimich, это учебное задание, в чем смысл? системные функции полагаю использовать нельзя
Fimich
Сообщений: n/a
13.03.2011, 02:20     Utf8-Utf16 и назад. КАК? #3
да, это первое задание при изучении С++.
смысл: чтение файла (от 100 страниц и выше), перевод, сохранение.
вроде бы и не сложно. Алгоритмы перевода известны и описаны в Википедии. Но как это сохранять. Т.е. с точки зрения программирования не понятно
malor
49 / 26 / 2
Регистрация: 02.07.2007
Сообщений: 1,643
20.09.2011, 20:22     Utf8-Utf16 и назад. КАК? #4
А где, собственно, функции?
Виктор_Сен
 Аватар для Виктор_Сен
30 / 23 / 1
Регистрация: 01.08.2011
Сообщений: 176
20.09.2011, 21:07     Utf8-Utf16 и назад. КАК? #5
Я как раз тоже с кодировками разбираюсь, только мне нужен перевод ANSI/Unicode и наоборот. Нашёл функции MultiByteToWideChar и WideCharToMultiByte вот ссылки: http://msdn.microsoft.com/en-us/library/dd319072.aspx и http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx. Они работают и с ANSI и с UTF8/16. Только с использованим возникла проблема, ошибка, не помню, какая. Наверно параметры не так задал. Там на английском, а с английским у меня плохо.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.09.2011, 11:04     Utf8-Utf16 и назад. КАК? #6
Цитата Сообщение от Fimich
Но как это сохранять. Т.е. с точки зрения программирования не понятно
открываешь файл, читаешь побайтово
следовательно, открываешь в двоичном режиме
каждая функция по-разному читает
utf-8 в utf-16 читает по одному байту
utf-16 в utf-8 читает по два байта
utf-8 в ascii
Yandex
Объявления
21.09.2011, 11:04     Utf8-Utf16 и назад. КАК?
Ответ Создать тему
Опции темы

Текущее время: 15:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru