Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2012 01:33:39

__system__
От: Днепропетровск
Зарегистрирован: 2012-04-30
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter + clipboard + linux = problem

Имеем: ОС 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, а пять символов. В чем может быть проблема? Заранее спасибо.

Офлайн

#2 Май 3, 2012 06:42:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

tkinter + clipboard + linux = problem

>>> 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)

Офлайн

#3 Май 12, 2012 02:02:27

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

tkinter + clipboard + linux = problem

Кто-то нажаловался в http://bugs.python.org/issue14777 Починим до выхода 3.3.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version