The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"ncurses: вывеси символ в utf-8 локали"
Отправлено pup, 03-Июл-08 23:37 
Я тоже столкнулся с этой проблемой.

>Добавить #include <locale.h> в заголовок и setlocale(LC_CTYPE, ""); до initscr(); после чего наступит счастье.

Это помогает справиться с выводом utf-8 строк, то есть начинают работать функции типа addstr и printw. Но addch продолжает выводить гадости. То есть, если выводить символ через addch побайтно, ncurses рисует пробел и потом utf8 символ, причём с инвертированным атрибутом. (пробел -- это он выглядит как пробел в urxvt, что ncurses на самом деле выводит -- я не знаю).
Собственно как это побеждать -- не знаю, думаю обойти на кривой и написать что-нибудь вида:

void myaddch (char c)
{
    static char buf[5] = "";
    static int len = 0;
    
    buf[len++] = c;
    buf[len] = '\0';
    if (len >= 4) {
        len = 0;
    } else if (is_valid_utf8_char (buf)) {
        addstr (buf);
        len = 0;
    }
}

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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