Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/106: Рейтинг темы: голосов - 106, средняя оценка - 4.85
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231

Создание файла в UTF-8 кодировке

09.01.2012, 12:57. Показов 22158. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как сделать что бы в данной ситуации файл создавался в utf-8

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    DWORD tmp0;
    TCHAR buffer[256];
    bool test;
    char s[MAX_PATH],s2[MAX_PATH];
 
    lstrcpy(s, "t.txt");
    
  
    HANDLE h = CreateFile(s,     
           GENERIC_WRITE,        
           FILE_SHARE_READ,       
           NULL,                 
           OPEN_ALWAYS,                    
           FILE_ATTRIBUTE_NORMAL, 
           NULL);                 
    
    
    if (h != INVALID_HANDLE_VALUE)
    {
          test = WriteFile(h, &buffer ,sizeof(buffer), &tmp0, NULL);
          if (test) 
             lstrcpy(s2, "Файл записался");
          else 
             lstrcpy(s2, "Файл не записался");
          MessageBox(hWnd,s,(CHAR*)buffer,NULL);
    }
    CloseHandle(h);
Добавлено через 11 часов 6 минут
Тема еще актуальна
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2012, 12:57
Ответы с готовыми решениями:

Чтение файла в кодировке utf-8 и вывод в консоль
Здорова! Пытаюсь прочитать файл в кодировке utf-8 (вот он ) и вывожу его в консоль, ничего не получается. Вот код: #include...

Записать в блокнот в кодировке UTF-8
Здравствуйте, как записывать и считывать строки в кодировке UTF-8 ?

Как записать файл в кодировке utf-8?
Вообщет задача такая, нужно файл записать в кодировке utf-8 или unicode и нужно чтобы русские символы считывались. Я хочу добиться чтобы...

31
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.01.2012, 22:28
Студворк — интернет-сервис помощи студентам
Helldrg, вот скрин компиляции данного кода в VS2008(файл UTF-8 прилагаю)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
 
void Gen1();
 
int main()
{
    Gen1(); 
    system("pause");
    return 0;
}
 
void Gen1()
{
    char str[32] = {0};
    LPWSTR  lpszW = L"Hello слово word и т.д\n";
    long uLen = WideCharToMultiByte(CP_UTF8, 0, lpszW,   -1,  NULL, NULL, NULL, NULL);
    WideCharToMultiByte(CP_UTF8, 0, lpszW, uLen,  str , uLen, NULL, NULL);
    ofstream ofs("UTF-8.txt");
    ofs<<str;
    ofs.close();
}
Миниатюры
Создание файла в UTF-8 кодировке  
Вложения
Тип файла: txt UTF-8.txt (32 байт, 38 просмотров)
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.01.2012, 22:32
Цитата Сообщение от Helldrg Посмотреть сообщение
Dev c++ 4.9
- попробую покрутить проект в CodeBlocks(не уверен что в данной среде
Цитата Сообщение от Helldrg Посмотреть сообщение
WideCharToMultiByte
вообще есть или не имеет другой прототип)
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
09.01.2012, 22:38  [ТС]
у него вроде только один прототип
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.01.2012, 22:44
Цитата Сообщение от Helldrg Посмотреть сообщение
ошибку пишет в этой строке
Код C++
1
long uLen = WideCharToMultiByte(CP_UTF8, 0, lpszW, * -1, *NULL, NULL, NULL, NULL);
Добавлено через 58 секунд
[Warning] passing NULL used for non-pointer converting 6 of `
int WideCharToMultiByte(UINT, DWORD, const WCHAR*, int, CHAR*, int, const CHAR*, BOOL*)'
- это же предупреждение а не Error - можно попробовать записать 6-й параметр вместо NULL - 0
2
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
10.01.2012, 20:04  [ТС]
Все равно то же самое
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.01.2012, 20:20
Цитата Сообщение от Helldrg Посмотреть сообщение
Все равно то же самое
- я обещал довести, сейчас занимаюсь
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.01.2012, 20:35
Helldrg, вот последний вариант кода, вводим на русском что хотим транслировать в UTF-8 в выходном файле(см скрины)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
 
void Gen1();
 
int main()
{
    Gen1(); 
    system("pause");
    return 0;
}
 
void Gen1()
{
    system("chcp 1251");
    char str[1024] = {0};
    cout<<"Enter text :\n";
    cin.getline(str,1024);
    int sLen = MultiByteToWideChar(CP_ACP,0,str,strlen(str),NULL,NULL);
    WCHAR  *lpszW = new WCHAR[sLen + 1];
    MultiByteToWideChar(CP_ACP,0,str,strlen(str),lpszW,sLen);
    lpszW[sLen] = '\0';
 
    long uLen = WideCharToMultiByte(CP_UTF8, 0, lpszW,   -1,  NULL, NULL, NULL, NULL);
    WideCharToMultiByte(CP_UTF8, 0, lpszW, uLen,  str , uLen, NULL, NULL);
    ofstream ofs("UTF-8.txt");
    ofs<<str;
    ofs.close();
}
Миниатюры
Создание файла в UTF-8 кодировке   Создание файла в UTF-8 кодировке  
2
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
10.01.2012, 21:19  [ТС]
афигеть
Миниатюры
Создание файла в UTF-8 кодировке  
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
10.01.2012, 21:20  [ТС]
Тут короче на русском когда я пишу такая фигня вылазит!
А английский нормально выводит
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
11.01.2012, 18:19
Цитата Сообщение от Helldrg Посмотреть сообщение
Тут короче на русском когда я пишу такая фигня вылазит!
А английский нормально выводит
-тут всё просто полагаю когда вы вводите русский текст консоль печатает абрукадабру а вот в файлик UTF всё хорошо выводится, это проблемма руссификации консоли(вот вам быстрый вариант решения проблеммы - см скрины)

А вообще это грабли
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
system("chcp 1251");
в devc как я вижу данная функция не отрабатывает да и в VS2008 за ней некоррект замечал, что ж вы ещё можете записать вместо её setlocale или SetConsoleOutputCP(1251); да и вообще подберите себе руссификацию из этого топика
Русский текст без танцев с бубнами
Там кроме меня ещё много компетентных людей выссказывалась с примерами и замечаниями
Миниатюры
Создание файла в UTF-8 кодировке   Создание файла в UTF-8 кодировке   Создание файла в UTF-8 кодировке  

2
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
28.07.2013, 13:13
-=ЮрА=- подскажи пожалуйста, что нужно исправить, чтобы при компиляции проекта WriteXLS исчезли ошибки???? Заранее огромное спасибо!!!!!!
Миниатюры
Создание файла в UTF-8 кодировке  
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 20:51
Для начала, CanAppend() нормально вызывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2013, 20:51

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

Считывание из файла в нужной кодировке
Почему при считывание файла выдает кракозябры ? Содержимое файла: char *text; ifstream read; ...

Прочитать из файла числа в 16-ичной кодировке
Добрый вечер! Подскажите пожалуйста. У меня в файле записана следующая строка b6589fc6abdc8ac. Я её считываю следующим образом char ...

Считывание части строк из файла в кодировке CP866
Доброго времени суток! Пытаюсь считать из текстового файла в кодировке CP866 текст длинной например в 64 символа с начала каждой строки,...

Считать utf-8 из файла
Доброго времени суток. Задача следующая. Есть текстовый файл - словарь в utf-8 кодировке. Слова разделены переводом строки. Считываю...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru