Форум сайта python.su
Имеем: ОС Mint (на базе Ubuntu), Python 3.2
Суть проблемы: при работе с буфером обмена из библиотеки tkinter вместо русских символов вижу их unicode-значения (u0430, например). Пробовал два варианта получения текста:
from tkinter import *
root = Tk()
#Первый вариант
lines = root.clipboard_get()
#Второй вариант
lines = root.selection_get(selection = ‘CLIPBOARD’)
С цифрами и английскими символами проблем нет. Данный код корректно работает в ОС Windows 7. Махинации с encode и decode невозможны, потому как в 3.х все строки unicode. Выходит, что из буфера я получаю не один символ u0430, а пять символов. В чем может быть проблема? Заранее спасибо.
Офлайн
>>> import tkinter as tk >>> >>> root = tk.Tk() >>> root.clipboard_get() 'абв' >>> root.clipboard_get().encode('latin1') b'\xd0\xb0\xd0\xb1\xd0\xb2' >>> root.clipboard_get().encode('latin1').decode('utf-8') 'абв' >>> root.clipboard_get().encode('latin1').decode('utf-8') 'abcабв' >>>
Отредактировано py.user.next (Май 3, 2012 06:43:14)
Офлайн
Кто-то нажаловался в http://bugs.python.org/issue14777 Починим до выхода 3.3.
Офлайн