Задать вопрос
@klabuk0v

Как передать на вход скрипту на Python корректную строку или корректно обработать то, что передается в скрипте?

Камрады выручайте, ситуация следующая:
Пишу скрипт на Pythone 3 для интеграции Zabbix 2.2 и нашей локальной системой ServiceDesk.
Настраиваю Zabbix для работы с внешним скриптом по аналогии с этой инструкцией: www.pagerduty.com/docs/guides/zabbix-integration-guide
Проблема в том, что на вход скрипту вместо русских символов приходит нечто похожее на unicode строку, вот:
['/etc/zabbix/alert.d//script.py', 
's.klabukov@welcome-group.ru', 
'trigger', 
'name:No ping availability\nid:100100000013878\nstatus:PROBLEM\nhostname:sms\nip:192.168.47.122\nvalue:1\nevent_id:100100001782560\nseverity:High\n
inventoryname:Server for send SMS\n
inrussia:\udcd0\udcbf\udcd1\udc80\udcd0\udcbe\udcd1\udc81\udcd1\udc82\udcd0\udcbe\udcd0\udcb5 \udcd1\udc81\udcd0\udcbb\udcd0\udcbe\udcd0\udcb2\udcd0\udcbe \udcd0\udcbd\udcd0\udcb0 \udcd1\udc80\udcd1\udc83\udcd1\udc81\udcd1\udc81\udcd0\udcba\udcd0\udcbe\udcd0\udcbc.']

вместо непонятных символов я ожидаю увидеть следующее:
inrussia:простое слово на русском.
вот запросы к базе zabbix в MySQL, которые могут быть полезны:
mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+

show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

OS - debian wheezy 3.2.51-1 x86_64
MySQL - Server version: 5.5.31-0+wheezy1 (Debian)
Python 3.2.3
Zabbix 2.2.0

Как передать на вход питон-скрипту корректную строку или корректно обработать то, что передается в скрипте?
  • Вопрос задан
  • 3281 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@KPEBETKA
Попробуйте следующим оразом:
unicode('\u041b\u0435\u0432\u044b\u0435', 'unicode-escape')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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