Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153

Как хранить строки в кодировке UTF-8?

05.11.2010, 19:48. Показов 4476. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать, чтобы в строковом типе символы находились в кодировке utf8?
в данном коде слово ТЕКСТ будет в 1251.
C++
1
string строка = " ТЕКСТ ";
если создавать
C++
1
wstring строка = " ТЕКСТ ";
а затем выводить
C++
1
2
wcout << строка;
cout << строка;
то выводятся 16ричные числа.

Мне нужно, чтобы при передаче строк в cout или printf они туда шли как utf-8.

Сегодня целый день провозился и ничего не могу поделать.

ICONV на visual 10 отказывается работать.(говорит о неразрешенных внешних элементах).


Очень прошу привести маленький - рабочий пример.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2010, 19:48
Ответы с готовыми решениями:

Как правильно определить длину строки в кодировке UTF-8?
подскажите как в этот код добавить utf-8 ? потому что русские символы тяжелее в 2 раза. if(strlen($_POST) &gt;= 4 &amp;&amp;...

Написать функцию выполняющую перевод строки с символами русского алфавита в кодировке UTF-8 в заданный набор символов
Помогите пожалуйста написать функцию выполняющую перевод строки с символами русского алфавита в кодировке UTF-8 в набор символов...

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

12
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
05.11.2010, 20:46
L" ТЕКСТ " ?
0
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153
05.11.2010, 21:17  [ТС]
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
L" ТЕКСТ " ?

Это само собой, иначе не откомпилируется.

А выводы wcout wprintf ничего не выводят даже если есть eng символы.
Ни в консоль ни в браузер.
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
05.11.2010, 21:29
Весь код приведите, пожалуйста
0
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153
05.11.2010, 21:55  [ТС]
Вот.. он все таки выводит eng символы если они стоят перед рус.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
 
    std::wstring строка = L" text ТЕКСТ2 ";
    std::wcout << строка;
 
    wprintf(L"ТЕКСТ text");
 
 
        std::cout << "\n";
    std::system("pause");
    return 0;
}
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
06.11.2010, 00:08
setlocale( LC_ALL, L"Russian" )
0
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153
06.11.2010, 00:32  [ТС]
Цитата Сообщение от alex_x_x Посмотреть сообщение
setlocale( LC_ALL, L"Russian" )
А как использовать?
C++
1
 error C2664: setlocale: невозможно преобразовать параметр 2 из "const wchar_t [8]" в "const char *"
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
06.11.2010, 00:38
setlocale( LC_ALL, "Russian" )
я просто не проверял
от так
0
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153
06.11.2010, 00:45  [ТС]
Цитата Сообщение от alex_x_x Посмотреть сообщение
setlocale( LC_ALL, "Russian" )
я просто не проверял
от так
Нее. Все равно не выводит.

Единственное, что нашел и работает это
C++
1
2
WideCharToMultiByte
MultiByteToWideChar
Но приходится создавать отдельные переменные для хранения новых строк.
Что при частом употреблении cout ведет к огромному коду.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
06.11.2010, 00:52
а строка со смыслом по-русски написана?
0
 Аватар для Manjak
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
06.11.2010, 00:59
Другой вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <io.h>
#include <fcntl.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    _setmode(_fileno(stdout), _O_U16TEXT);
    wprintf(L"Салют\n");
    system("pause");
    return 0;
}
0
1 / 13 / 0
Регистрация: 28.09.2010
Сообщений: 153
06.11.2010, 01:45  [ТС]
Цитата Сообщение от Manjak Посмотреть сообщение
Другой вариант:

C++
1
2
    _setmode(_fileno(stdout), _O_U16TEXT);
}
Если использую _O_U16TEXT то вместо Салют идет иероглиф и алют
Если указываю _O_U8TEXT то возникает ошибка.
0
 Аватар для Manjak
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
06.11.2010, 01:48
Это уже к компилятору, я тестил на ВС 2010, кириллица отлично выводится
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2010, 01:48
Помогаю со студенческими работами здесь

Как сделать сайт в кодировке UTF-8?
Если я правильно понимаю, то для изготовления страницы в кодировке UTF-8 надо не только прописать эту кодировку в charset, но и сам файл...

Как получить код символа в кодировке UTF-8?
Имеется WP. В нем посты в кодировке UTF-8. Как получить код символа в кодировке UTF-8? Вообще задача большая и мне придутся очень...

Как сохранить текст из memo в кодировке UTF-8?
Приветствую! Нужна Ваша помощь. Мне надо сохранить текст из memo1 в кодировке UTF-8. Процедура сохранения вот(работает, но кодировка...

Как записать в файл строку в кодировке UTF-8?
Здравствуйте уважаемые пользователи, модераторы и все обитатели этого форума! Нужна снова ваша помощь! Ниже представлен скрипт который...

Как правильно вывести файл в кодировке UTF-16LE?
Друзья! НА самом-то деле я всё правильно делаю. Вот код: import codecs f = codecs.open (&quot;foo.txt&quot;, 'r', &quot;UTF-16LE&quot;) ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru