!!! ВАЖНО !!!

1) Във връзка с превенцията на зачестилите СПАМ теми във форума, паролите на всички потребители бяха автоматично инвалидизирани на 22 Май 2024 14:20 ч.. За да възстановите своята парола (и създадете нова), моля използвайте опцията за забравена парола тук.
2) Ако акаунта ви е "баннат", без да знаете защо, вероятно от ваше име са публикувани СПАМ съобщения.
Съжаляваме за причиненото неудобство. При проблеми с възстановяването на паролата или баннати акаунти, моля пишете на kodibg в гмаил.ком или във Фейсбук страницата на КодиБГ Форум тук

Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5
Декодиране на string в python2
#1
Здравейте Shy

Отново имам трудности в декодирането на текст на кирилица в python2. Вижте какво съм написал и дайте идеи как да конвертирам резултата към utf-8:
Код:
 # -*- coding: utf-8 -*-
import re
import urllib
import urllib2
import json
import time

response = urllib2.urlopen('https://i49.vbox7.com/subtitles/263/98263_2.js')

subs = response.read().split("var sSubsJson = '", 1)[-1].split("';", 1)[0].decode('string_escape')
s = re.compile('{"s":"(.*?)","t"\:(\d+),"f"\:(\d+)}')
items = s.findall(subs)
row = 0
subs = ''
for i in items:
    row = row + 1
    subs += str(row) +'\n'
    subs += time.strftime("%H:%M:%S,000", time.gmtime(int(i[2]))) + ' --> ' + time.strftime("%H:%M:%S,000", time.gmtime(int(i[1]))) + '\n'
    subs += i[0].decode('string_escape').replace('+',' ').replace('
','\n')
    subs += '\n\n'
print subs
[Изображение: notrobosmall.jpg]
Отговори
#2
Тоя js файл не е ли нещо прее***н? В браузъра въобще не се визуализира нормално с нито един енкодинг...
Отговори
#3
Доколкото би могло да съм сигурен, е с windows-1251 (cp1251) encoding, но досега в никакъв софтуер не съм успял да го декодирам. Ако се получи някак си, ще мога да поправя поддръжката за субтитри в една от добавките (мисля, че се подразбира коя точно) Shy
[Изображение: notrobosmall.jpg]
Отговори
#4
http://2cyr.com/decode/?lang=bg
Отговори
#5
Благодаря на автора на http://vloader.bg/ за помощта!  Оказа се, че текста е кодиран не с един енкодинг, а с няколко последователно... На колко ракии е бил автора на това програмно "решение", няма нужда да коментираме Smile

subs = response.read().split("var sSubsJson = '", 1)[-1].split("';", 1)[0].decode('utf8').encode('raw_unicode_escape').decode('utf8', 'ignore').encode('utf8', 'ignore')
[Изображение: notrobosmall.jpg]
Отговори
#6
Може нарочно да го е направил така с цел противодействие (всъщност само забавяне) на опитите за разкодиране Big Grin
Отговори


Отваряне на: