Отправляет email-рассылки с помощью сервиса Sendsay

Практические советы по GTK+

  Все выпуски  

Практические советы по GTK+ Особенности работы с файлами в GTK+


Особенности работы с файлами в GTK+:

Gtk использует кодировку UTF8, а ваша операционная система может пользоваться
другой, например в Windows используется CP1251, а в Linux может быть какая угодно,
но обычно KOI8(в старых дистрибутивах) или UTF8(в более новых дистрибутивах).
Для открытия файла, например через fopen, требуется имя файла в кодировке системы.
Конечно, если используются только латинские символы,
то проблем не будет, но ведь пользователи могут назвать свои файлы и по русски.
Решение проблемы простое, есть две полезные функции:
g_filename_from_utf8() переводит имя файла(или любой другой текст) из кодировки UTF8 в кодировку
системы, a g_filename_to_utf8() выполняет противоположную функцию.
Главное не забывать взяв имя файла из текстового поля, перед обращением к нему, как к файлу, перевести
его в кодировку системы.

Пример:
// берём имя файла из формы
gchar *filename_utf8 = (gchar*)gtk_entry_get_text(GTK_ENTRY(entry_input_file));
// переводим из UTF8 в кодировку системы
gchar *filename_ansi = g_filename_from_utf8(filename_utf8, -1, NULL, NULL, NULL);
// работа с файлом
..
// чистим память, ведь g_filename_from_utf8 создаёт новую строку с выделением для неё памяти.
g_free(filename_ansi);

 


В избранное