Выполнение & ldquo; unicode & rdquo; Сценарий Python от Gedit vs Terminal

Kubuntu 17.04

Отредактируйте файл main.xml, как правило, найденный по адресу: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml в качестве пользователя root.

Ищите запись volumeStep:

<entry name="volumeStep" type="Int">
  <default>2</default>
</entry>
[d3 ] и измените процентный шаг на все, что вы хотите. Я использую 2%, как вы можете видеть.

Как написано на Kubuntu 16.04, вам нужно перезапустить Plasma, чтобы это вступило в силу:

killall plasmashell #to stop it
kstart plasmashell #to restart it
4
задан 3 April 2012 в 19:11

1 ответ

Терминал позволяет выполнять код «unicode» python без проблем, потому что он правильно установлен sys.stdout.encoding.

Я меняю сценарий, как показано ниже:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import sys

print sys.stdout.encoding
print u"富强"

Запуск в Gedit , выход: None для sys.stdout.encoding.

Запуск в терминале, выход UTF-8 для sys.stdout.encoding, и строка напечатана правильно.

Но если Я меняю locale LC_CTYPE с en_US.UTF-8 на C, запускаю его в терминале с помощью LC_CTYPE=C ./test.py, я получаю следующее:

ANSI_X3.4-1968
Traceback (most recent call last):
  File "./test.py", line 7, in <module>
    print u"富强"
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

sys.stdout.encoding установлен в ASCII, поэтому он не может обрабатывать строка.

3
ответ дан 25 May 2018 в 13:03

Другие вопросы по тегам:

Похожие вопросы: