runcode
@runcode

Как сохранить ключ кириллицей в config.ini?

пример кода, как сохранять кириллицу в ini
self.config = QSettings( "config.ini", QSettings.IniFormat)
        self.config.setIniCodec('utf-8')
        self.config.setValue('Процессор ремонта дроидов 2', 80)


код config.ini сохраняет ключ в таком виде
[General]
%U041F%U0440%U043E%U0446%U0435%U0441%U0441%U043E%U0440%20%U0440%U0435%U043C%U043E%U043D%U0442%U0430%20%U0434%U0440%U043E%U0438%U0434%U043E%U0432%202=80
  • Вопрос задан
  • 512 просмотров
Решения вопроса 1
runcode
@runcode Автор вопроса
Почитал выше сказанное и решил просто написать метод транслит кириллицы в латинец. Все довольны)
from string import printable
from transliterate import translit

    def filter_latin(item):
        """ filter on latin characters  """
        if not all(map(lambda c: c in printable, item)):
            return translit(item, reversed=True).replace(" ", "_")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
Старайтесь не помнить, что существуют 1251 и koi8

https://habr.com/post/336478/
https://doc.qt.io/qtforpython/PySide2/QtCore/QSett...

QSettings settings;
settings.setIniCodec("UTF-8");
Ответ написан
Комментировать
@MadridianFox
Web-программист, многостаночник
Попробуйте сначала конвертировать строку в utf-8, а потом использовать её как ключ.

Как вариант - сменить кодировку конфига на cp1251 или koi8r, ну и ключи перед записью тоже конвертировать в соответствующую кодировку.
Ответ написан
Ваш ответ на вопрос

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

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