Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420

Запись текста в html-файл с кодировкой UTF-8

10.08.2018, 14:38. Показов 3935. Ответов 28

Студворк — интернет-сервис помощи студентам
Хочу записать текст в html-страницу, в которой кодировка utf-8.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AnsiString s1="Таблица";
wchar_t s2[100]={L"Web-Страница"};
char s3[100]={"Блокнот"};
 
wofstream to;
to.open("000.html", ios_base::out);
to<<"<html><head><meta charset='utf-8'></head><body><table>";
 
to<<"<tr><td>"<<WideString(s1.c_str())<<"</td></tr>";
to<<"<tr><td>"<<s2<<"</td></tr>";
to<<"<tr><td>"<<(wchar_t)s3<<"</td></tr>";
 
to<<"</table></body></html>";
to.close();
При запуске html-файла в браузере отображается:
446476
Web-!B@0=8F0
а третьей строки вообще нет

Подскажите, где копать, что бы правильно записать в файл.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.08.2018, 14:38
Ответы с готовыми решениями:

Запись результата в текстовый файл с кодировкой UTF-8
Всем доброго времени суток, Есть программа-тест, которая написана на Пайтоне. Человек отвечает на вопросы и в зависимости от ответов...

Запись файла с кодировкой UTF-8
Нужно из Edit1 считать некое число и сохранить его в файле с кодировкой UTF-8. В интернете нашел функцию WideString, но не нашел как с...

Сохранение из Memo в файл с кодировкой utf-8
Всем привет. Нужно сохранить из мемо текст с кодировкой UTF-8 без OBM. Как сделать? if(SaveHTML-&gt;Execute()) { ...

28
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
17.08.2018, 23:37
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от nmcf Посмотреть сообщение
codecvt в те времена ещё не было.
в те времена еще не было, сейчас уже устарело. Как сейчас работать с кодировками с использованием только c++17(кроссплатформиность и тд)?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.08.2018, 00:00
lArtl, у него же нет C++17.
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
18.08.2018, 00:03
Цитата Сообщение от nmcf Посмотреть сообщение
lArtl, у него же нет C++17.
это от себя вопрос)

Добавлено через 1 минуту
меня вообще коробит в С++ нереализованность нормальной работы с локалями и кодировками... есть ли там какой нить пропоулз на эту тему или еще чего
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
18.08.2018, 00:23
Цитата Сообщение от lArtl Посмотреть сообщение
есть ли там какой нить пропоулз на эту тему или еще чего
Например вот: https://github.com/sg16-unicode/sg16
1
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
18.08.2018, 12:20  [ТС]
lArtl, спасибо, Я воспользовался вашим кодом, немного переделал и получилось, то что хотел:
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
  string s;    //строка для записи в файл
  char s1[10]; //строка для itoa()
  int n1=123;  //число для строки
 
  //Формирование строки для записи в файл
  s="<html><head><meta charset='utf-8'></head><body><table>";
  s+="<tr><td>Таблица-W12</td></tr><tr><td>Блокнот ";
  s+=itoa(n1, s1, 10); //добавление числа в строку
  s+="</td></tr></table></body></html>";
 
  //Размер буфера
  size_t n = MultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, NULL, 0);
  //Объявление буфера
  wchar_t *buf1 = new wchar_t[n];
  //Конвертация
  MultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, buf1, n);
 
  //Размер буфера
  n = WideCharToMultiByte(CP_UTF8, 0, buf1, -1, NULL, 0, NULL, NULL);
  //Объявление буфера
  char *buf2=new char[n];
  //Конвертация
  WideCharToMultiByte(CP_UTF8, 0, buf1, -1, buf2, n, NULL, NULL);
 
  //Запись в файл
  ofstream to;
  to.open("000.html", ios_base::out);
  to<<buf2;
  to.close();
 
  //Удаление буферов
  delete[]buf1;
  delete[]buf2;
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.08.2018, 16:46
Инженер_3, что мешает сразу объявить L-строку? Builder даже это не поддерживает, что ли?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
19.08.2018, 03:14
Цитата Сообщение от lArtl Посмотреть сообщение
меня вообще коробит в С++ нереализованность нормальной работы с локалями и кодировками...
Там бы сначала нормальную работу поиска подстроки в строке реализовать. Ну в смысле, с гарантированным O(n+m) для std::string::find в худшем случае (Алгоритм Кнута — Морриса — Пратта). Пусть даже с оговоркой про "если достаточно места в локальном хранилище".
0
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
19.08.2018, 20:57  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Инженер_3, что мешает сразу объявить L-строку? Builder даже это не поддерживает, что ли?
Вместо string использовать wstrng?
Во-первых, мне надо и string использовать.
Во-вторых, "L" - лишний символ для кода, а это экономия на пару тысячах этих "L".
А так всё Ok!
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
19.08.2018, 21:21
Цитата Сообщение от Инженер_3 Посмотреть сообщение
Во-вторых, "L" - лишний символ для кода, а это экономия на пару тысячах этих "L".
про это больше никому не говори)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2018, 21:21

Записать AnsiString в файл с кодировкой UTF-8
Добрый день. Задача записать в txt файл строку AnsiString, содержащую русские буквы. Файл должен быть в кодировке UFT-8 Пытаюсь...

Библиотека PHP Simple HTML DOM. Непонятки с кодировкой - результат выдается в win-1251, а надо в utf-8.
Сам файл библиотеки в utf-8. Файл скрипта также в utf-8. В настройках библиотеки по умолчанию установлено utf-8. Страница, которую...

Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл
Добрый день, форумчане. Может у кого есть заготовка или кто поделится советом, необходимо прочитать файл (с кракозябрами) с однобайтовой...

Вывод в HTML файл в UTF-8
Суть проблемы: есть код, который парсит rss ленты, русского языка это чудо как оказалось не понимает Что удалось обнаружить: 'Dim text3...

Запись в файл с кодировкой
Добрый вечер всем У меня возникла вот такая загвоздка: PrintWriter print = new PrintWriter(new BufferedWriter(new...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru