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

C и UTF-8 - C++

Восстановить пароль Регистрация
 
Fedis
608 / 88 / 2
Регистрация: 08.07.2010
Сообщений: 1,893
03.08.2011, 09:08     C и UTF-8 #1
Как для приложения на C установить кодировку UTF-8? Чтобы символы на кирилице выводились и вводились нормально.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2011, 09:08     C и UTF-8
Посмотрите здесь:

C++ From UTF-8 to UNICODE
Преобразовние Utf-16 <=> Utf-8 C++
Конвертация из ASCII в UTF-32 или UTF-8 в UTF-32 C++
C++ Кириллица в UTF-8
из UTF-8 в Windows-1251 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fedis
608 / 88 / 2
Регистрация: 08.07.2010
Сообщений: 1,893
03.08.2011, 09:43  [ТС]     C и UTF-8 #3
А если символ на кириллице вшит в код? Например
C
1
2
3
4
5
char ch;
...
if (ch=='э') {
...
}
zalogic
 Аватар для zalogic
144 / 140 / 2
Регистрация: 12.12.2010
Сообщений: 253
03.08.2011, 10:22     C и UTF-8 #4
http://www.cplusplus.com/reference/c...dlib/mbstowcs/
http://lord-n.narod.ru/download/book...8/mbstowcs.htm
http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx

это смотрел?
-=ЮрА=-
Заблокирован
Автор FAQ
03.08.2011, 10:28     C и UTF-8 #5
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
zalogic
 Аватар для zalogic
144 / 140 / 2
Регистрация: 12.12.2010
Сообщений: 253
03.08.2011, 10:48     C и UTF-8 #6
а вообще вот.
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  
Изображения
 
-=ЮрА=-
Заблокирован
Автор FAQ
03.08.2011, 11:05     C и UTF-8 #7
Хочу поправиться
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
Fedis
608 / 88 / 2
Регистрация: 08.07.2010
Сообщений: 1,893
03.08.2011, 17:25  [ТС]     C и UTF-8 #8
Цитата Сообщение от zalogic Посмотреть сообщение
Если не секрет в какой среде работаете?
Линуксовская консоль+gedit+gcc.

Добавлено через 1 минуту
main.c:3:19: фатальная ошибка: tchar.h: Нет такого файла или каталога
Компиляция прервана.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.08.2011, 17:27     C и UTF-8 #9
Цитата Сообщение от i.c Посмотреть сообщение
Линуксовская консоль+gedit.
недавно было - посмотрите...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2011, 17:31     C и UTF-8
Еще ссылки по теме:

C++ C++, UTF-8 и совместимость
C++, UTF-8, char C++
C++ Парсер, utf-8

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

Или воспользуйтесь поиском по форуму:
Fedis
03.08.2011, 17:31  [ТС]     C и UTF-8
  #10

Не по теме:

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

Yandex
Объявления
03.08.2011, 17:31     C и UTF-8
Ответ Создать тему
Опции темы

Текущее время: 21:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru