Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
610 / 93 / 4
Регистрация: 08.07.2010
Сообщений: 1,893

C и UTF-8

03.08.2011, 09:08. Показов 1996. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как для приложения на C установить кодировку UTF-8? Чтобы символы на кирилице выводились и вводились нормально.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2011, 09:08
Ответы с готовыми решениями:

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

Преобразовние Utf-16 <=> Utf-8
Вопрос казалось бы простой, но нормально ответа на него я пока не нашел. Нужно вывести строчку юникода(UTF-16) в файл с изменением...

Кириллица в UTF-8
Отдельно задам ранее возникший вопрос. При работе с однобайтовой кодировкой (например, в старом борланде 3.1, где, если я правильно понял,...

9
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.08.2011, 09:16
Думаю сюда
[ С++ ] Изменить шрифт в консольном приложение ( программно )
и сюда
Получение идентификатора кодировки по названию
0
610 / 93 / 4
Регистрация: 08.07.2010
Сообщений: 1,893
03.08.2011, 09:43  [ТС]
А если символ на кириллице вшит в код? Например
C
1
2
3
4
5
char ch;
...
if (ch=='э') {
...
}
0
 Аватар для zalogic
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
03.08.2011, 10:22
http://www.cplusplus.com/refer... /mbstowcs/
http://lord-n.narod.ru/downloa... stowcs.htm
http://msdn.microsoft.com/en-u... s.80).aspx

это смотрел?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.08.2011, 10:28
N
Цитата Сообщение от i.c Посмотреть сообщение
char ch;
...
if (ch=='э') {
...
}
Можно как вариант создать хедер rus.h и подключить к проекту, вот листинг
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef RUS_H
#define RUS_H
#include <iostream.h>
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='╕')
            stream<<char(241);
        else if(*ps=='и')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
#endif
0
 Аватар для zalogic
194 / 193 / 15
Регистрация: 12.12.2010
Сообщений: 270
03.08.2011, 10:48
а вообще вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
char ch = 'П'; char ch1 = 'р'; char ch2 = 'и'; char ch3 = 'в';
 
int i;
printf("%c", ch+192);
printf("%c", ch1+192);
printf("%c", ch2+192);
printf("%c", ch3+192);
ch = getch();
return 0;
}
это на билдере.

А так смещение если задавать 192 , то норм. Единственно что между п и р промежуток.
Ну выходит со смещением просто поколдовать.

Если не секрет в какой среде работаете?
Миниатюры
C и UTF-8  
Изображения
 
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.08.2011, 11:05
Хочу поправиться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef RUS_H
#define RUS_H
#include <iostream.h>
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
#endif
0
610 / 93 / 4
Регистрация: 08.07.2010
Сообщений: 1,893
03.08.2011, 17:25  [ТС]
Цитата Сообщение от zalogic Посмотреть сообщение
Если не секрет в какой среде работаете?
Линуксовская консоль+gedit+gcc.

Добавлено через 1 минуту
main.c:3:19: фатальная ошибка: tchar.h: Нет такого файла или каталога
Компиляция прервана.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
03.08.2011, 17:27
Цитата Сообщение от i.c Посмотреть сообщение
Линуксовская консоль+gedit.
недавно было - посмотрите...
0
03.08.2011, 17:31  [ТС]

Не по теме:

Собственно, пишу только на Java (а там Unicode из коробки), но сейчас потребовался нативный код.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.08.2011, 17:31
Помогаю со студенческими работами здесь

Кириллицу в UTF-8
К примеру, у нас есть строка &quot;тест&quot;, нужно из него получить строку D1%82%D0%B5%D1%81%D1%82 для запроса

Парсер, utf-8
Помогите пожалуйста разобраться с кодировкой. Прочитал немного статей и литературы, но полного понимание ситуации с кодировкой так и нет....

From UTF-8 to UNICODE
здравствуйте!! у меня вот какой вопрос! Как сделать преобразование UTF-8 и Unicode? во общем моя программа считывает данные с базы( база...

C++, UTF-8, char
Приветсвую всех. Правильно ли я рассуждаю: 1) Если мне нужно использовать символы юникода в программе (самые немыслимые иероглифы,...

C++, UTF-8 и совместимость
Имеется некоторая программа (шутка, прога ещё в проекте). Она по сути является одним из кусков системы общения (пишу себе псевдоИИ, но не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru