The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"HEX to char"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"HEX to char"  
Сообщение от Udzhen email(ok) on 20-Окт-07, 03:07 
Здравствуйте!
Понадобилось мне тут получить символ по его HEX коду, и даже в мануале к printf, в списке интерпретируемых последовательностей, такая возможность нашлась!
Привожу фрагмент help-а:

\xHH   byte with hexadecimal value HH (1 to 2 digits)

\uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits)

\UHHHHHHHH
       Unicode character with hex value HHHHHHHH (8 digits)


Но вот незадача!
Реально оказалось что работает только последовательность \xHH, а остальные выводятся как будто это обычный текст!
Вот пример:

printf "\xC0"  # Выводит имвол "А"
echo -e "\xC0"  # Даже echo выводит символ "А", хотя в мане про эту возможность ни слова!
printf "\u0410"  # А вот здесь грабли! И выводится "\u0410"

Я перепробовал все возможные типы форматирования, все бестолку!
И то, что на сях делается просто элементарно,

wchar_t single_char = (wchar_t)(0x0410)  // Символ 'А'
или наоборот:
long uint_char = (long)(L'А')

для bash, в виду "ограничений" самого языка, является проблеммой не тривиальной...
Думаю, суть проблеммы я изложил достаточно понятно. Прошу уважаемых участников форума поделится со мной своим опытом и указать мне (скорее всего видимо на мои кривые руки) путь решения этой задачи.

-------
С Уважением, Евгений.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • HEX to char, phpcoder, 13:15 , 20-Окт-07, (1)  
  • HEX to char, jd, 16:53 , 20-Окт-07, (2)  
    • HEX to char, phpcoder, 18:55 , 20-Окт-07, (3)  
      • HEX to char, jd, 20:41 , 20-Окт-07, (4)  

Сообщения по теме [Сортировка по времени | RSS]


1. "HEX to char"  
Сообщение от phpcoder email(??) on 20-Окт-07, 13:15 
[c0der@rock ~]$ printf "\xC0\n" # Выводит имвол "А"
А
[c0der@rock ~]$ echo -e "\xC0"
А
[c0der@rock ~]$ printf "\u0410\n"  # А вот здесь грабли! И выводится "\u0410"  
А

Локаль CP1251, aterm/xterm -- всё работает. Дистрибутив ALT Linux, если это имеет значение.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "HEX to char"  
Сообщение от jd (??) on 20-Окт-07, 16:53 
У меня лично так:

$ printf "\u0410\n"
\u0410
$ /bin/printf "\u0410\n"
А
$ type printf
printf is a shell builtin

Так что, всё соответствует. В мане по bash ничего такого и не заявлено касательно его printf.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "HEX to char"  
Сообщение от phpcoder email(??) on 20-Окт-07, 18:55 
[...]
>$ type printf
>printf is a shell builtin

У меня zsh, кстати.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "HEX to char"  
Сообщение от jd (??) on 20-Окт-07, 20:41 
>У меня zsh, кстати.

Да я так и подумал, что не bash...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру