я закодировать символ «а» pyDes и я хочу, чтобы расшифровать егоКак расшифровать строку Фрум textbuffer.get_text
text = self.textbuffer.get_text(start, end)
print text
//',\xcc\x08\xe5\xa1\xa1fc'
x = "{}".format(text)
print x
//',\xcc\x08\xe5\xa1\xa1fc'
but i need
//,塡fc
когда я делаю
cipher_text = ',\xcc\x08\xe5\xa1\xa1fc'
print cipher_text
//,塡fc
почему
text = self.textbuffer.get_text(start, end)
didn't return me a good string ?
Ваше решение не работает здесь, но я делаю ход:
text = self.textbuffer.get_text(start, end)
a = text.decode('unicode-escape')
g = a.encode('utf-16be')
это почти хорошо, но когда я делаю
print g
//',���fc'
print "%r"%g
//"\x00'\x00,\x00\xcc\x00\x08\x00\xe5\x00\xa1\x00\xa1\x00f\x00c\x00'"
Теперь у меня есть проблема с тем, как удалить все \ x00 здесь
newstr = g.replace("\x00", "")
newstr2 = newstr.replace("'", "")
newstr2 это плохое решение это работает для малых только строки
Что-то серьезно не так. '', \ xcc \ x08 \ xe5 \ xa1 \ xa1fc'' не является допустимой строкой UTF-8. Представление UTF-8 ', 塡 fc' будет ', \ xe5 \ xa1 \ xa1fc'. Но вы не получаете ни одну из этих строк из текстового буфера, вы получаете * цитированную * версию первого. Другими словами, строка, которую вы получаете, будет вводиться в Python как '' ', \\ xcc \\ x08 \\ xe5 \\ xa1 \\ xa1fc' "'. Как этот буфер заканчивается в вашем текстовом буфере (и как он когда-либо показывался GTK, как что-либо, кроме '', \ xcc \ x08 \ xe5 \ xa1 \ xa1fc''), это то, что вы должны исследовать. – user4815162342
Другой вопрос: как и почему вы ожидаете, что шифрование 'a' приведет к', 塡 fc'. Это не то, как работает шифрование: шифрование обычно преобразует байты в байты. Чтобы зашифровать данные в Юникоде, вы сначала конвертируете его в байты, затем зашифровываете их. Но эти зашифрованные байты больше не могут рассматриваться как представление данных в формате unicode, они выглядят как мусор для декодера UTF-8 (или другого), который в лучшем случае будет производить [mojibake] (http://en.wikipedia.org/wiki/ Mojibake), когда их кормили. – user4815162342
Я знаю, что я использую pyDes для шифрования 'a', и это результат ', \ xcc \ x08 \ xe5 \ xa1 \ xa1fc', когда у меня есть версия для шифрования в переменной, нет никакой проблемы для ее расшифровки, но когда я использую textbuffer .get_text, чтобы получить мою версию шифрования, это возвращает мне хорошую строку, но в плохом формате, и я не могу ее расшифровать. – Salsores