Ярлыки Tkinter и текстовые виджеты отображают escape-символы Юникода вместо китайских иероглифов в ОС Raspberry PiPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ярлыки Tkinter и текстовые виджеты отображают escape-символы Юникода вместо китайских иероглифов в ОС Raspberry Pi

Сообщение Anonymous »

Я столкнулся с проблемой отображения китайских символов в виджетах Tkinter на моем Raspberry Pi Zero 2 W. Хотя заголовок окна и терминал правильно отображают китайские символы, такие виджеты, как «Метка» и «Текст», отображают escape-последовательности Юникода (например, \u4e2d\ u6587) вместо настоящих китайских иероглифов. Примечательно, что тот же код отлично работает на компьютере с Windows, правильно отображая китайские символы во всех виджетах Tkinter. Вот подробный обзор моей настройки и шагов по устранению неполадок, которые я предпринял на данный момент:
Среда:
Устройство: Raspberry Pi Zero 2 WОперационная система: ОС Raspberry Pi
Опробованные версии Python: Python 3.11 (последняя версия Tkinter), Python 3.8 (создан на основе совместимого более старого Tkinter)
Tkinter Версии: последняя и более ранние версии, соответствующие Python 3.8.
Установленные шрифты: известно, что несколько шрифтов поддерживают китайские символы, включая Noto Sans CJK.
Признаки:Работает:
Китайские иероглифы корректно отображаются в заголовке окна.
Китайские иероглифы корректно отображаются в терминале.
Китайские иероглифы корректно отображаются при открытии скрипта Python с помощью nano.
/>Не работает:
Китайские символы в виджетах Tkinter Label отображаются как escape-последовательности Юникода (например, \u4e2d\u6587).
Пример кода:
Вот минимальный пример, воспроизводящий проблему:

Код: Выделить всё

import tkinter as tk

root = tk.Tk()
root.title("字体测试")

# 创建字体列表
fonts = [
("宋体", 12),
("Arial", 12),
("微软雅黑", 12),
("Times New Roman", 12),
("Courier New", 12),
("Verdana", 12),
("黑体", 12),
("Noto Sans", 12),
("Noto Sans SC", 12),
("DejaVu Sans", 12),
("Liberation Sans", 12),
("Georgia", 12),
("Comic Sans MS", 12),
]

# 为每种字体创建标签并显示
for font_name, font_size in fonts:
label = tk.Label(root, text=f"使用 {font_name} 字体", font=(font_name, font_size))
label.pack()

# 进入主循环
root.mainloop()
В Windows
На Raspberry Zero2W
Что я пробовал:
  • Настройки языкового стандарта:
    Проверено, что языковой стандарт системы установлен в UTF-8 с помощью команды locale.
    Подтверждено, что заголовок окна и терминал обрабатывают китайский язык. символы правильно.
  • Шрифты:
    Установлены Noto Sans CJK и другие шрифты, поддерживающие китайские иероглифы.
    Указаны разные шрифты в виджетах Tkinter, чтобы убедиться, что они поддерживают китайский язык.
  • Версии Python и Tkinter:
    Протестировано с Python 3.11 и Python 3.8.
    Установлены как последние, так и совместимые старые версии. Tkinter.
    Попытки переустановки и установки.
  • Перекомпиляция Tcl/Tk:
    Попытка перекомпилировать Python с установленным Tcl /Tk, но из-за этого Raspberry Pi Zero 2 W остановился и потребовал перезагрузки.
Несмотря на проверку региональных настроек и использование шрифтов, поддерживающих китайский язык символов, виджеты Tkinter (метка и текст) на моем Raspberry Pi Zero 2 W отображают китайский текст в виде escape-последовательностей Юникода вместо реальных символов. Заголовок окна и терминал правильно обрабатывают символы, что указывает на то, что проблема связана только с виджетами Tkinter.
Запрос на помощь:
Кто-нибудь сталкивался с подобной проблемой, когда Tkinter отображал escape-символы Юникода вместо китайских символов на Raspberry Pi? Что может быть причиной неправильной обработки виджетами Tkinter строк Юникода в этой среде и как это устранить?

Подробнее здесь: https://stackoverflow.com/questions/793 ... nese-chara
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ярлыки Tkinter и текстовые виджеты отображают escape-символы Юникода вместо китайских иероглифов в ОС Raspberry Pi
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ получить символы Юникода, а также коды Escape ANSI от пользователя на С++?
    Anonymous » » в форуме C++
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • Python: символы Юникода 16.0 и Юникода 15.1.
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Python: символы Юникода 16.0 и Юникода 15.1.
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Python: символы Юникода 16.0 и Юникода 15.1.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»