Есть виджет gtk.TreeView, он объявлен как источник drag:
target = [
    ('STRING', 0, TARGET_STRING),
    ('text/plain', 0, TARGET_STRING),
    ('application/x-rootwin-drop', 0, TARGET_ROOTWIN)
]
... [skip] (тут объявлен некий класс)
    self.treeview.drag_source_set( gtk.gdk.BUTTON1_MASK | gtk.gdk.BUTTON3_MASK,
            target,
            gtk.gdk.ACTION_COPY)
    self.treeview.connect('drag-data-get', self.treeview_drag_data_get)
... [skip]
    def treeview_drag_data_get(self, widget, context, data, info, timestamp):
        s = u'ня!'
        data.set_text(s, -1)
data.get_text() так же возвращает строку из 13(!) символов u'\u043d\u044f!'.
Попытка решить проблему через data.set(gtk.gdk.TARGET_STRING, 16, s) даёт результат в виде строки в utf-8 воспринятой как latin1: 'нÑ!'
Можно ли в pygtk перетаскивать в другие приложения кириллический текст?
Обращаю внимание на то, что подразумеваеется реализация своего DnD, а не то, что сделано в, например, gtk.Entry --- там DnD реализовано внутри библиотеки.

