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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.62
uienifer
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 42
#1

Как перевести символы из ASCII в ANSI - C++

24.11.2010, 10:06. Просмотров 4421. Ответов 5
Метки нет (Все метки)

Читаю файл который в ASCII нужно переконвертить его в ANSI. Что делать???
Помогите, третий день мучаюсь...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 10:06     Как перевести символы из ASCII в ANSI
Посмотрите здесь:

Перевести Unicode строку в ANSI - C++
char label_ansi; wchar_t label_wide; sprintf_s (label_ansi, "%ls", label_wide); // работает, но если и когда появляется не-ascii...

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF) - C++
Есть следующий кусок кода: FILE* fp = fopen("G:\OPND1.txt", "r"); if (fp!=NULL) // если файл удалось открыть { while((ch =...

Ascii символы - C++
Добрый день, подскажите почему неправильно выводятся русские заглавные буквы? Английские выводятся. void ascii( const char* text, char*...

Русские символы из ASCII - C++
Программа отправляет "POST" запрос в гугл Speech и сохраняет ответ. Но сохраняет в ASCII. Текстовый редактор читает это нормально, а вот...

Конвертер в символы ASCII - C++
Нужно написать програму которая из файла берет даные и конвертирует их в код ASCII и потом записывает их в другой файл. Как это сделать?

Перевести текст в кодировку ASCII - C++
перевести текст"Daria" в код ASCII

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zyablik
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 40
25.11.2010, 19:08     Как перевести символы из ASCII в ANSI #2
Вопрос некорректный

Если зто русский текст, и тебе его надо перевести из ондной кодировки в другую, например из 866 в 1251 или KOI. Удобней всего это делать по таблице xlat - где каждая буква требуемой кодировки идет под номером букв кодировки начального текста (например ASCII номер буквы 'A' 80, а
в cp 1251 - с0), конечно можно использовать побитный сдвиг или умножение но буква 'Ё' не совпадает.

Английский текст в ASCII и ANSI одинаковый.
uienifer
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 42
25.11.2010, 19:14  [ТС]     Как перевести символы из ASCII в ANSI #3
А можно примерчик? хоть какой нибудь захудалый. А то я скоро с ума сойду. Обьясняю проблему подробнее: у меня есть файлы, текстовые, когда их открываешь в винде- там иероглифы. Мне нужно эти файлы прочитать, естественно, что VC тоже считывает иероглифы. Как мне сделать так чтоб VC видел их как нормальные???
uienifer
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 42
25.11.2010, 19:15  [ТС]     Как перевести символы из ASCII в ANSI #4
P.S. Текст в файлах - украинский
zyablik
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 40
01.12.2010, 01:41     Как перевести символы из ASCII в ANSI #5
Значит они закодированы не cp1251 а cp866 или koi8 или еще чемто. Если ты не знаеш кодировку это програмно можно сделать. Но если тебе не нужен распознаватель кодировкок, то проще будет чтоб ты сделал пост своих мероглифов сюда прямо с файла. Я узнаю что это за кодирровка и как его правильно загрузить в MSVC.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2010, 09:16     Как перевести символы из ASCII в ANSI
Еще ссылки по теме:

Заменить символы в строке (ASCII) - C++
Есть строка с некоторым набором символов: string consoleText = "Здесь должен быть текст"; Возможно ли заменить какой-либо символ на...

Не могу перевести из двоичного кода в ASCII - C++
Есть ли в C++ функция получения кода ASCII по двоичному, и наоборот? Имею массив: char t=; Как преобразовать данный массив в...

Перевести в ASCII код русские буквы - C++
Ребят, возникла проблема перевод в ascii код русские буквы. В инетрнете нашел что надо использовать unsigned char но он не правильно...

Перевести из int в string по таблице ascii - C++
подскажите как перевести из числа в символ? есть int a = 97; как получить std::string = "a" ?

Заменить символы при компиляции (ASCII) - C++
Доброго времени суток! Возможно ли заменить заранее определенный символ при компиляции? К примеру, воспользовавшись данным фрагментом...

Вывести символы ASCII в 16-ричной системе - C++
пытаюсь вывести из таблицы ASCII числа и буквы с помощью 16-ричной записи(Hex) но увы ничего не получилось. пытался еще число из таблица...


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

Или воспользуйтесь поиском по форуму:
uienifer
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 42
01.12.2010, 09:16  [ТС]     Как перевести символы из ASCII в ANSI #6
Спасибо большое всем за помощь. Если кому надо, то это можно сделать так:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
bool COldDbfEd::decode(char *s)
{
 
        int a[]={      //KOI_2_WIN
                0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
 
                        0x000 ,0x000 ,0x000 ,0x038 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x028 ,0x000 ,0x000 ,0x000 ,0x000 ,
                        0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,0x000 ,
 
                        0x07E ,0x060 ,0x061 ,0x076 ,0x064 ,0x065 ,0x074 ,0x063 ,
                        0x075 ,0x068 ,0x069 ,0x06A ,0x06B ,0x06C ,0x06D ,0x06E ,
                        0x06F ,0x07F ,0x070 ,0x071 ,0x072 ,0x073 ,0x066 ,0x062 ,
                        0x07C ,0x07B ,0x067 ,0x078 ,0x07D ,0x079 ,0x077 ,0x07A ,
 
                        0x05E ,0x040 ,0x041 ,0x056 ,0x044 ,0x045 ,0x054 ,0x043 ,
                        0x055 ,0x048 ,0x049 ,0x04A ,0x04B ,0x04C ,0x04D ,0x04E ,
                        0x04F ,0x05F ,0x050 ,0x051 ,0x052 ,0x053 ,0x046 ,0x042 ,
                        0x05C ,0x05B ,0x047 ,0x058 ,0x05D ,0x059 ,0x057 ,0x05A };
 
        if (decod==1)
        {
                while ( *(s)!=0 )
                {
                        if ( unsigned char(*(s))>127 && unsigned char(*(s))<176) *(s)+=64;
                        else
                                if ( unsigned char(*(s))>223 && unsigned char(*(s))<240) *(s)+=16;
                        s++;
                }
                return true;
        }
        if (decod==2)
        {
                while ( *(s)!=0 )
                {
                        if ( unsigned char(*(s))>0x080 && unsigned char(*(s))<0x0ff)
                                *(s)=a[unsigned char(*(s))-0x080]+0x080;
                        s++;
                }
                return true;
        }
return true;
}
Код писала не я - нашла в инете, но автора не помню. Так что пусть он меня простит за плагиат.И спасибо ему за свободный доступ к исходникам такой нужной прожки как его конвертор
Yandex
Объявления
01.12.2010, 09:16     Как перевести символы из ASCII в ANSI
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru