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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
Fimich
Сообщений: n/a
#1

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

13.03.2011, 02:11. Просмотров 2700. Ответов 5
Метки нет (Все метки)

Задание: реализовать 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++):

Как вернуть указатель на 1 символ назад? - C++
вот endl скидывает указатель на новую строку, а как на 1 символ назад.Есть ли такая команда?А то гугл ничего не выдает.

Как через goto вернуться назад, чтоб еще раз проверить функцию? - C++
ребят,подскажите пожалуйста,как мне через goto вернуться назад,чтоб еше раз проверить мою функцию? ...

UTF8 To Char - C++
Помогите с задачкой! Мне надо сделать программу которая переводит строки из UTF8 в нормальный текст и обратно (норм текст это русские...

UTF8 в C++ или killmepls - C++
Всем привет. Вопрос достаточно простой: какие типы данных поддерживают UTF8 символы в CPP? Сторонние библиотеки не интересуют. char*...

Из кодировки * в UTF8 и обратно в * - C++
Добрый вечер. Звездочка(*) это кодировка, которая мне не известна. Суть вот в чем. Есть файл html, который был открыт через...

Перекодировка строки из cp1251 в UTF8 - C++
Доброго времени суток. У меня есть строка в cp1251, но мне нужно вывести в utf8. Как это лучше реализовать?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
13.03.2011, 02:16 #2
Fimich, это учебное задание, в чем смысл? системные функции полагаю использовать нельзя
0
Fimich
Сообщений: n/a
13.03.2011, 02:20 #3
да, это первое задание при изучении С++.
смысл: чтение файла (от 100 страниц и выше), перевод, сохранение.
вроде бы и не сложно. Алгоритмы перевода известны и описаны в Википедии. Но как это сохранять. Т.е. с точки зрения программирования не понятно
malor
37 / 28 / 2
Регистрация: 02.07.2007
Сообщений: 1,787
20.09.2011, 20:22 #4
А где, собственно, функции?
0
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176
20.09.2011, 21:07 #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. Только с использованим возникла проблема, ошибка, не помню, какая. Наверно параметры не так задал. Там на английском, а с английским у меня плохо.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.09.2011, 11:04 #6
Цитата Сообщение от Fimich
Но как это сохранять. Т.е. с точки зрения программирования не понятно
открываешь файл, читаешь побайтово
следовательно, открываешь в двоичном режиме
каждая функция по-разному читает
utf-8 в utf-16 читает по одному байту
utf-16 в utf-8 читает по два байта
utf-8 в ascii
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2011, 11:04
Привет! Вот еще темы с ответами:

Конвертер из UTF8 - cp1251 и наоборот - C++
Доброго времени суток. Я понимаю, что данная тема уже поднималась на форуме, но я нашел код на c# который конвертит cp1251-utf8: private...

Преобразование String UTF8 в 1251 - C++
Нашел пример: wchar_t s = L"London Москва"; char utf8; wchar_t wstr; char s1251; ...

Посимвольная обработка UTF8 строки - C++
Добрый день. пишу программу в С++ в Linux Ubuntu, необходимо обрабатывать строку введенную в UTF-8 (русские символы) Есть...

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


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

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

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