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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
pav1uxa
1830 / 1682 / 638
Регистрация: 23.01.2014
Сообщений: 6,044
Завершенные тесты: 1
#1

Перекодировать из UCS-2 Little Endian в UTF - C++

13.02.2014, 19:22. Просмотров 1868. Ответов 6
Метки нет (Все метки)

Есть много файлов *.txt в кодировке (как я понял) UCS-2 Little Endian. Как перевести эти файлы в кодировку UTF или ANSI? Пока что делаю это вручную с помощью Notepad++ -> Кодировки -> Преобразовать в ANSI, но нужно сделать программно.

Добавлено через 18 часов 34 минуты
up.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 19:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перекодировать из UCS-2 Little Endian в UTF (C++):

Из UCS-2 Little Endian в UTF-8 без BOM - C++
Здравствуйте! Имеется файлик xml в кодировке UCS-2 Little Endian. Хочу написать обработчик на с++ который будет менять кодировку на...

Перекодировать текст с UTF-8 в ASCII - C++
Даже не знаю с чего начать Задача такова: Есть файл в формате UTF8. Нужно его перекодировать в ASCII и сохранить.

Порядок байт в big-endian и little-endian - C++
Всем привет! Народ подскажите мне пожалуйста простые прописные истины, а то я что то запутался! Предположим что у нас в байте 8 - бит и...

Из little endian в big endian - C++
Есть 256-битное 16-ричное число: 54 68 69 73 20 69 73 20 6D 65 73 73 61 67 65 2C 20 6C 65 6E 67 74 68 3D 33 32 20 62 79 74 65 73 Как...

Конвертация из ASCII в UTF-32 или UTF-8 в UTF-32 - C++
Собсно сабж.

Подскажите с кодировкой файла в UCS-2 - C++
Всем привет. Не получается получить на выходе файл в кодировке UCS-2 LE BOM. (из win-1251) Пробую так: #include <iostream> ...

6
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
13.02.2014, 19:44 #2
WideCharToMultiByte()
0
pav1uxa
1830 / 1682 / 638
Регистрация: 23.01.2014
Сообщений: 6,044
Завершенные тесты: 1
18.02.2014, 19:09  [ТС] #3
Цитата Сообщение от gazlan Посмотреть сообщение
WideCharToMultiByte()
По ссылке не нашел ничего по UCS-2.

UP
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.02.2014, 19:37 #4
UCS-2. - вариант Unicode. По ссылке есть все, что вам требуется.
0
pav1uxa
1830 / 1682 / 638
Регистрация: 23.01.2014
Сообщений: 6,044
Завершенные тесты: 1
18.02.2014, 22:47  [ТС] #5
Вопрос остался в силе.

Добавлено через 2 часа 2 минуты
Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
using namespace std;
int main() {
    string str;
    ifstream file("1.txt");
    while (getline(file, str)) {
      cout<<str<<endl;
    }
    return 0;
}
Выводит иероглифы, и почему то даже не весь файл, а только первые 16 строчек. Если вывод делать через printf("%s", str.c_str()), то выводит вообще только одну первую строчку файла, непонятно почему.

Как здесь применить WideCharToMultiByte(), чтобы вывести файл через переменную типа std::string?
0
Croessmah
Эксперт CЭксперт С++
13425 / 7579 / 856
Регистрация: 27.09.2012
Сообщений: 18,668
Записей в блоге: 3
Завершенные тесты: 1
18.02.2014, 23:33 #6
ну если работаете с юникодом, то wstring, wcout, wifstream
0
pav1uxa
1830 / 1682 / 638
Регистрация: 23.01.2014
Сообщений: 6,044
Завершенные тесты: 1
19.02.2014, 13:44  [ТС] #7
Цитата Сообщение от Croessmah Посмотреть сообщение
wstring, wcout, wifstream
Поменять string на wstring, cout на wcout, wifstream на wifstream? Не работает. вывод такое же.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 13:44
Привет! Вот еще темы с ответами:

Big-endian тестирование - C++
Есть программа, которая должна работать на little и big endian одинаково. В ней куча всяких &quot;ifdef&quot;. С помощью какого ПО для виртуализации...

Как проще всего работать с Big-Endian C++ ? - C++
С++. Как проще всего работать с Big-Endian, используя стандартные операции ?

Перегрузка ifstream и ofstream для работы с файлами в little-endian формате? - C++
Всем привет, мне нужно реализовать классы для работы с файлами в little-endian формате. Для этого задумал сделать public-потомки...

Как объединить пару байт в слово? (Загрузка WAV, Big Endian) - C++
Привет! Есть звуковой файл с 16-и битными амплитудами. Да не суть. После открытия файла и чтения всяких заголовков, остаются чистые RAW...


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

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

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