Python: не корректная кодировка при получении данных при помощи requests

После обновления ОС, неожиданно стал шалить модуль requests. А именно при получении данных при помощи post запроса, перестало срабатывать автоопределение кодировки возврата вывода:

Код вида:

def reqwest(command,body,local_config):
    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0',
        'Accept': 'application/json',
        'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1',
        'Sec-Fetch-Dest': 'document',
        'Sec-Fetch-Mode': 'navigate',
        'Sec-Fetch-Site': 'none',
        'Sec-Fetch-User': '?1',
        'TE': 'trailers',
    }
    requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
    post_params = json.dumps({'command': command, 'body': body})
    basic = HTTPBasicAuth(local_config["user_1c"].encode("utf8"), local_config["password_1c"])
    try:
     response = requests.post(local_config["url_1c"], headers=headers,data=post_params, verify=False,auth=basic)
     res=json.loads(response.text)
     if "error" not in res:
         return {"error": True, "result": f"Ошибка выполнения запроса {e} {response} {response.text}"}
     return res
    except Exception as e:
      return {"error":True,"result":f"Ошибка выполнения запроса {e} {response} {response.text}"}

Стал выдавать:

Решение: указать кодировку тела возврата принудительно:

     response = requests.post(local_config["url_1c"], headers=headers,data=post_params, verify=False,auth=basic)
     response.encoding = 'utf-8'
     res=json.loads(response.text)

Результат:

Проблема с кодировкой локали скриптов Python выполняемых из crontab

Столкнулся с проблемой, что скрипт выполняемый из консоли работает корректно, а выполняемый из crontab — пишет ошибку

UnicodeEncodeError: ‘ascii’ codec can’t encode

Дело в том, что задания выполняемые из crontab имеет кодировку по умолчанию ascii. Потому нужно в /etc/crontab добавить строчку:

LANG=ru_RU.UTF-8




Rar с именами в русской кодировке и Krusader

Зачастую пользователи Windows присылают архивы rar с именами файлов в русской кодировке. Ну никак не получилось пока научить Krusader работать с такими архивами нормально. В интернетиках говорят помогает при в ходе в архив задать кодировку через Вид-Кодировка-Utf8. У меня не сработало. Работает только команда в консоли:




Сортировка в MySQL кириллицы utf8-general-ci

загруженное (1)Дано: MySQL 5.1.72, таблицы созданные в utf8-general-ci, установка соединения вызывается следующей функцией:

И хоть ты тресни, запрос вида:

Сортировался по непонятно каким критериям. Потеряв на поиск причины  несколько часов, перепробовав кучу «рецептов», пришлось заворачивать сортировку запросов в команду binary(), т.е. вот так:

Костыль конечно.. И сортирует различая большие и маленькие буквы. Но таки лучше так чем никак. Ищу лучшее решение.