0
0 комментариев

Добрый день.

Подскажите идеи пожалуйста, есть такая задача — CGI-приложение из веб-формы получает данные, а потом по ним заводит пользователя в Zimbra (путем вызова зимбровского бинарника). Проблема в том, что в форме есть русские символы (unquote естественно делаю), и все бы хорошо. но вот в зимбру они передаются в виде ???????. (английские — как надо)
локаль системы

LANG=POSIX
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Локаль sudo и пользователя zimbra — такие же. Питоновский скрипт

-*- coding: utf-8 -*-

В файлы пишет абсолютно прекрасно и читаемо, проблема именно в случае, когда я вызываю

cmd = 'sudo /opt/zimbra/bin/zmprov'
subprocess.Popen(cmd + " ca "+ string_param, shell = True)

Причем дело не в форме, если я укажу переменную внутри скрипта (на русском), то такая же проблема.

До этого пытался сделать скрипт на bash (не хватило функционала), но там эту проблему решил путем

export LANG=POSIX
export LC_CTYPE=en_US.UTF-8 (помоему зимбра тогда ru_RU использовала)

Видимо, дело упирается в этот самый LANG, но как это решить, я не могу понять. Подскажите пожалуйста, замучился уже.


Добавить комментарий