crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Расширенные символы
kin63camapa
  опции профиля:
сообщение 23.8.2010, 18:02
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 21.8.2010
Пользователь №: 1976

Спасибо сказали: 0 раз(а)




Репутация:   1  


Пососветуйте способ преобразования в программе \320\237\321\200\320\270\320\274\320\265\321\200 \321\202\320\265\320\272\321\201\321\202\320\260 в нормальный текст и обратно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 8)
DIMEDROLL
  опции профиля:
сообщение 23.8.2010, 19:09
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


определи сначала что это за кодировка, а мы потом подскажем как ее перекодировать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.8.2010, 19:12
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


похоже на то, что троли рекомендуют писать в исходниках вместо текста на национальном языке.
Т.е. вместо:
QString string = "Привет";
пишут:
QString string = "<тут коды символов>";
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kin63camapa
  опции профиля:
сообщение 23.8.2010, 19:36
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 21.8.2010
Пользователь №: 1976

Спасибо сказали: 0 раз(а)




Репутация:   1  


Цитата(Litkevich Yuriy @ 23.8.2010, 20:12) *
похоже на то, что троли рекомендуют писать в исходниках вместо текста на национальном языке.
Т.е. вместо:
QString string = "Привет";
пишут:
QString string = "<тут коды символов>";


оно самое, я хз что это за кодировка.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 23.8.2010, 19:42
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


это быстрее всего коды символов в восьмеричной системе, то есть обычная ескейп-последовательность

Сообщение отредактировал Алексей1153 - 23.8.2010, 19:44
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kin63camapa
  опции профиля:
сообщение 23.8.2010, 22:21
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 21.8.2010
Пользователь №: 1976

Спасибо сказали: 0 раз(а)




Репутация:   1  


Ну так что по сабжу? есть хоть таблица у кого чо они значат? алгоритм то может и сам изоюбету
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 23.8.2010, 22:50
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(kin63camapa @ 23.8.2010, 23:21) *
Ну так что по сабжу? есть хоть таблица у кого чо они значат? алгоритм то может и сам изоюбету

const char *s = "\\320";
char c = (s[1] - '0') * 8 * 8 + (s[2] - '0') * 8 + (s[3] - '0');


Сообщение отредактировал DEADHUNT - 23.8.2010, 22:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.8.2010, 7:47
Сообщение #8


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


DEADHUNT, только бэкслеш не двойной, а одинарный, этож esc )

текст получится так
//будет текст (с некоторой долей вероятности - возможно, надо w_char, или что там)
const char* p="\320\237\321\200\320\270\320\274\320\265\321\200 \321\202\320\265\320\272\321\201\321\202\320\260";


цифры можно так получить
struct s_one_symb
{
   const char slash;
   char c0;
   char c1;
   char c2;
   const char zero;

   s_one_symb():slash('\\'),c0(0),c1(0),c2(0),zero(0)
   {
   }

   const char* SetChar(const char c)
   {
      c0='0'+((c>>0)&7);
      c1='0'+((c>>3)&7);
      c2='0'+((c>>6)&7);
      return (const char*)this;
   }
};

//как пользоваться:
s_one_symb symb;
QString s;

s+=symb.SetChar('П');
s+=symb.SetChar('р');
s+=symb.SetChar('и');
s+=symb.SetChar('в');
s+=symb.SetChar('е');
s+=symb.SetChar('т');


-не тестировано и требует оптимизации, однако )

Сообщение отредактировал Алексей1153 - 24.8.2010, 7:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 24.8.2010, 13:31
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Алексей1153 @ 24.8.2010, 8:47) *
DEADHUNT, только бэкслеш не двойной, а одинарный, этож esc )

был бы одинарный компилятор сам бы всё это преобразовал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 18:37