• XSS.stack #1 – первый литературный журнал от юзеров форума

Вытащить строки в неверной кодировкой в новый файл.

В Notepad++
  • Открываешь новый файл
  • Кодировки → Кодировки → Кириллица → Windows-1251
  • Вставляешь свои кракозябры
  • Сохраняешь
  • Открываешь еще раз
  • Профит!
Далее можно через то же меню Преобразовать в UTF-8
Скажите, вот зачем вы умничаете, если в принципе не понимаете сути проблемы?
Если кодировка не подходит, значит ее нужно изменить. Перечитайте в чем дело и не умничайте, я вас прошу. Иногда лучше почитать, чем написать ))
 
Скажите, вот зачем вы умничаете, если в принципе не понимаете сути проблемы?
Если кодировка не подходит, значит ее нужно изменить. Перечитайте в чем дело и не умничайте, я вас прошу. Иногда лучше почитать, чем написать ))
Бля.. Откуда вы такие беретесь?
И ты меня будешь учить как общаться? :D
Пиши нормально, не психуй.

По поводу того как вытащить всё вытаскивается элементарно регулярками.
Код:
ANSI - ^.*[^\u0000-\u007F].*$
RU   - ^.*[а-яА-я].*$

и т.д.
 
Я немного покрутил и вот что у меня вышло:
Python:
import requests
result = []
file_path = input('path to file: ')
with open(fr'{file_path}', 'rb') as fh:
    for line in fh.readlines():
        try:
            result.append(line.decode('utf-8').encode('cp1251').decode('utf-8').strip().replace('\n', ''))
        except UnicodeDecodeError:
            result.append(line.decode().replace('\n', ''))

        except UnicodeEncodeError:
            res = requests.get(url=f'http://api.foxtools.ru/v2/TextDecoder.txt?cp=UTF-8&lang=RU&text={line.decode("utf-8")}&from=1251&to=utf-8')
            result.append(res.text.strip().replace('\n', ''))


for word in result:
    print(word)
инб4: можно бы все через апи, но зачем ?

вот что получилось на выходе:
000посикай
0000ппа
0000пппп
0000пппц
0000пппы
0000привет
0000Привет
0000ПРИВЕТ
0000про
0000Про
0000прст
0000пу
0000пуз
0000пусик
0000пфдштф
0000пфкеь
0000пфкфп
0000пфпф
0000ПЩВ
0000ра
0000РА
0000разведка
0000развод
0000рапира
0000растя
0000да
0000дд
0000ддд
0000дддд
0000ХХХХ
0000ддее
0000ди
0000дик
0000динис
0000динозавр
0000дима
0000димыч
0000диана
0000диашка
0000дгл
0000дп
0000ден
0000данил
0000денис
0000денисс
0000даня
0000джес
0000джура
0000дарья
0000даша
0000***дашка*
0000дура
0000дщму
0000А
0000АА
0000АААА
0000АК
0000-АЗАТ
0000Айнур
0000АНЯ
0000АОС
0000ре
0000рева
0000ка
0000кл
0000кд
0000кк
0000ккк
0000кккк
0000киса
0000киска
0000кирилл
0000киря
0000ко
0000код
0000кондротенко
0000кнопа
0000козел
0000коля
0000кот
0000костя
0000кораблёва
0000кг
0000кв
0000кеа
0000кака
0000какашка
0000кан
0000кен
0000кент
0000капув
0000кат
0000карина
0000каша
0000катя
0000кы
0000кс
0000куе
0000куку
0000кузя
0000ксю
0000ксюша
0000ксюха
0000кр
0000кри
0000крис
0000кристина
0000иб
0000идщщв
0000иии
0000ииии
0000ина
0000инна
0000инлшт
0000игорь
0000иван
0000иваныч
0000ипв
0000изал
0000ильнар
0000илья
0000илюха
0000ит
0000ислам
0000ир
0000ира
0000ирка
0000ирина
0000ириска
0000ириша
0000итебск
0000ищь
0000ое
0000ол
0000на
0000нз
0000ок
0000окт
0000оксана
0000ни
0000ник
0000ника
0000никита
0000никто
0000нина
0000оо
0000нн
0000нокия
0000ооо
0000оооо
0000ноль
0000ноля
0000норик
0000ночь
0000нгкф
0000опа
0000надежда
0000надя
0000неизвесно
0000олооло
0000обппсм
0000незнаю
0000олег
0000назар
0000олеся
0000олечка
0000нет
0000настя
0000настяду
0000настядурахаха
0000нася
0000наруто
0000ольга
0000ната
0000наталя
0000наташа
0000оля
0000нсп
0000нуля
0000нуся
0000-нурик
0000орб
0000нщт
0000офттф
0000нэшка
0000нюта
0000рига
0000рим
0000рита
0000га
0000ва
0000вл
0000вж
0000вкщт
0000вика
0000викинг
0000вита
0000витка
0000виталик
0000витас
0000витя
0000го
0000гол
0000год
0000гога
0000вова
0000волков
0000вор
0000воробьёвалера
0000горяни
0000вв
0000ввв
0000вввв
0000вп
0000гал
0000вадя
0000вака
0000веи
0000ваня
0000гавнистыйборя
0000влад
0000владик
0000валера
0000валєра
0000геля
0000валя
0000вау
0000весы
0000вася+
0000вася
0000вера
0000вероника
0000гОР
0000гф
0000вт
0000вумшд
0000гуф
0000гриша
0000время
0000гыгы
0000вшьф
0000вшщк
0000вфырф
0000вшфтф
0000вэн
0000па
0000пк
0000++++----п#дарасы
0000пинкодтелефона
0000пит
0000попа
0000победа
0000поля
0000посикай
0000ЯЯ
0000ппа
0000пппп
0000пппц
0000Ялошара
0000павыф
0000папа
0000папамама))))
0000перис
0000пароль
0000паша
0000паха
0000пашка
0000пацанчик
0000ЯРУЛФ
0000пу
0000пуз
0000пусик
0000привет
0000про
0000прст
0000пфдштф
0000пфкеь
0000пфкфп
0000пфпф
0000ма
0000ме
0000мж
0000УФ
0000мдфв
0000мдфвшл
0000мина
0000минако
0000мит
0000мир
0000мирвам
0000миша
0000михайло
0000молоко
0000мойпарщль
0000мм
0000ммм
0000мммм
0000медведь
0000макото
0000макс
0000маго
0000мама
0000УИМ
0000масенька
0000мася
0000марик
0000марина
0000мария
0000марат
0000маруська
0000марта
0000мартьянова
0000маша
0000матвей
0000машак
0000машенька
0000машалера
0000машунечка
0000машулька
0000мечта
0000мувер
0000муефд
0000мще
0000мщдл
0000мывместе
0000мшла
0000мшлф
0000мшефы
0000мтс
0000мяу
0000КАТЯ
0000Костя
0000КИЕВ
0000КЩЬФЫРЛФ
0000Кара
0000КСЮША
0000КП
0000МЗ
0000МАК;
0000МАНЯ
0000МАСЯНЯ
0000МАРИЯ
0000МАРИНА
0000ММ
0000Максим
0000ро
0000роза
0000ройф
0000рок
0000ром
0000рома
0000ромалох
0000роса
0000россия
0000рр
0000аа
0000аБ
0000ал
0000аб
0000зз
0000ДД
0000лл
0000ЩЩ
0000ЮЮ
0000ФФ
0000бб
0000йй
0000ад
0000лд
0000жд
0000едік
0000ДА
0000ДАША
0000-ДАУРЕН
0000ГАЛЯС
0000ЛАРИСА
0000зк
0000акак
0000лида
0000Вика
0000лин
0000лина
0000Гиви
0000липеха
0000Дима
0000лимон
0000лиза
0000лилия
0000лизф
0000лиля
0000Вишенка
0000ао
0000боб
0000андр
0000андрей
0000енг
0000Вова
0000богдан
0000ангелина
0000ангеліна
0000лола
0000анеп
0000анжела
0000болт
0000лох
0000Лнф
0000Вор
0000лор
0000жорик
0000зоя
0000аня
0000зг
0000ав
0000ева
0000егор
0000лвм
0000ап
0000апр
0000ам
0000жм
0000ВУП
0000ЛМ
0000ааа
0000ззз
0000ЫФЕ
0000ФДД
0000ФЫВ
0000ЛЫЗ
0000ййй
0000ЛЕХА
0000жека
0000лекнф
0000али
0000алина
0000Юлия
0000лео
0000-лена
0000лена
0000Лена
0000ленин
0000зенит
0000леон
0000Ваня
0000женя
0000абв
0000лев
0000лега
0000жага
0000бевз
0000ЙФЯ
0000ЖЕКА
0000ДИМА
0000ДЩМУ
0000рррр
0000-лллл
0000аааа
0000алла
0000ееее
0000зззз
0000ВВВВ
0000ДДДД
0000лллл
0000ЙЙЙЙ
0000бббб
0000йййй
0000лайка
0000алекс
0000александр
0000-елена
0000алена
0000елена
0000Елена
0000аленка
0000ФЙЦУ
0000ЭЛЬМИРА
0000Джес
0000ДЕНИС
0000ЕГОР
0000ИГОРЬ
0000ЕФТЛ
0000абы
0000леся
0000лера
0000ель
0000альонка
0000Эльза
0000леха
0000лето
0000алёна
0000захаров
0000ФФфф
0000зая
0000Юля
0000ИРА
0000ах
0000зщ
0000йц
0000ес
0000лс
0000асд
0000лулы
0000ася
0000ер
0000ара
0000ере
0000арк
0000арина
0000Ириша
0000армия
0000артем
0000артём
0000аха
0000лфе
0000зфмуд
0000зщзщ
0000лфеф
0000ащч
0000ачу
0000йцу
0000афсл
0000йцук
0000йцукен
0000зщьф
0000ещьфы
0000лёша
0000бышок
0000зщшг
0000лшыф
0000йцфы
0000зфчфт
0000йцфыяч
0000афя
0000йфя
0000лшянф
0000лю
0000бю
0000Ию
0000люда
0000люба
0000ая
0000ля
0000ляля
0000НАСТЯ
0000Нана
0000ОК
0000Олег
0000ру
0000рум
0000румянцева
0000РУС
0000руслан
0000руся
0000руха
0000СВ
0000САША
0000ТАНЯ
0000ТШЛ
0000Таня
0000СЫЛФ
0000ТТ
0000СТАС
0000ТТТ
0000ТТТТ
0000ТшлфЛгрфк
0000Тфыенф
0000рф
0000ПЗ
0000ПАША
0000ПЩВ
0000ПРИВЕТ
0000Привет
0000Про
0000ршвфт
0000женя
0000Р В·Р В·
0000аааа
0000РіРѕСЂСЏРЅРё
0000Кара
0000настя
0000РІСѓРСшд
0000РА
0000РУС
0000юля
0000саша
0000РЎРѓРЎРѓРЎРѓРЎРѓ
0000Рђ
0000саас
0000саки
0000санёк
0000саня
0000саша
0000САША
0000св
0000СВ
0000света
0000светка
0000свириденко
0000уд
0000ук
0000ск
0000со
0000соня
0000солнце
0000софа
0000сочи
0000св
0000свириденко
0000света
0000светка
0000смм
0000саки
0000санёк
0000саня
0000слава
0000саас
0000сер
0000сергей
0000серега
0000сережа
0000сережка
0000саша
0000улыбка
0000уля
0000сс
0000уук
0000суп
0000ссс
0000сссс
0000сучка
0000сын
0000сщнце
0000сёма
0000стас
0000стася
0000сяч
0000ра
0000ре
0000рига
0000рим
0000рита
0000ро
0000рок
0000ром
0000рома
0000ромалох
0000роза
0000ройф
0000роса
0000россия
0000рева
0000рапира
0000развод
0000разведка
0000растя
0000рф
0000ру
0000рум
0000румянцева
0000руслан
0000руся
0000руха
0000рр
0000рррр
0000ршвфт
0000сер
0000сергей
0000серега
0000сережа
0000сережка
0000сёма
0000ск
0000слава
0000ъъъъ
0000смм
0000ьд
0000ьф
0000ьр
0000ьфкш
0000ьфлы
0000ьфч
0000ьфся
0000ьшірф
0000ьфырф
0000со
0000солнце
0000соня
0000софа
0000сочи
0000шл
0000іа
0000ще
0000тж
0000ыд
0000шднф
0000щдпф
0000щдуп
0000шдьшк
0000ыдфт
0000фдштф
0000щдшщшщш
0000шкгтф
0000фкенк
0000фкеуь
0000фкы
0000фи
0000чиб
0000тина
0000тигр
0000тимур
0000фис
0000тишина
0000фо
0000фокс
0000тоня
0000том
0000фома
0000тор
0000шорена
0000тоша
0000фвф
0000тма
0000федорова
0000федя
0000ёлка
0000фаина
0000таня
0000цап
0000там
0000тема
0000халк
0000телефон
0000талян
0000ылт
0000тася
0000фарис

В некоторых словах я так и не понял что за кодировка.
 
Спас
Бля.. Откуда вы такие беретесь?
Есть плагин под Notepad++
Есть простая тулза Штирлиц 4 крайняя версия 2001 года, там и сайта уже давно нет, гуглите
Спасибо ,буду пробовать.
В Notepad++
  • Открываешь новый файл
  • Кодировки → Кодировки → Кириллица → Windows-1251
  • Вставляешь свои кракозябры
  • Сохраняешь
  • Открываешь еще раз
  • Профит!
Далее можно через то же меню Преобразовать в UTF-8
Смысл не в том ,чтобы открыть и потом выискивать ручками в файле(5гб есть и на 18 гб) в котором триллиард строк ,а чтобы меньше действий.
Решил пробнуть плагин для Notepad++ так нотпад орет, что файл большой .
Вот почему я задался этим вопросом в теме по питону ,что помогут "выцепить" кривые строки,а не разбивать строки мудрить опять же искать ручками строки кривые.
 
Во, всё, скачался файл с примером, теперь понятно.

Поправил, но всё равно говнокод, дальше лень допиливать:

Python:
import sys

def main():
    if len(sys.argv) == 1:
        print('python3 xss52329.py input.txt output.txt')
    IN_FILE_PATH = sys.argv[1]
    OUT_FILE_PATH = sys.argv[2] if len(sys.argv) > 2 else None
    if OUT_FILE_PATH is None:
        with open(IN_FILE_PATH, 'r', encoding='utf-8') as f:
            for line in f:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                print(
                    line.rstrip('\r\n').encode('windows-1251').decode('utf-8')
                )
                print(new_line.rstrip('\r\n'))
        return
    with open(IN_FILE_PATH, 'r', encoding='utf-8') as f_in:
        with open(OUT_FILE_PATH, 'w', encoding='utf-8') as f_out:
            for line in f_in:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                f_out.write(new_line)

if __name__ == '__main__':
    main()
 
Спас

Спасибо ,буду пробовать.

Смысл не в том ,чтобы открыть и потом выискивать ручками в файле(5гб есть и на 18 гб) в котором триллиард строк ,а чтобы меньше действий.
Решил пробнуть плагин для Notepad++ так нотпад орет, что файл большой .
Вот почему я задался этим вопросом в теме по питону ,что помогут "выцепить" кривые строки,а не разбивать строки мудрить опять же искать ручками строки кривые.
С таким объёмами Notepad++ не справится, тогда EmEditor.
Если не помогут с кодом чуть позже напишу.
 
Во, всё, скачался файл с примером, теперь понятно.

Поправил, но всё равно говнокод, дальше лень допиливать:

Python:
import sys

def main():
    if len(sys.argv) == 1:
        print('python3 xss52329.py input.txt output.txt')
    IN_FILE_PATH = sys.argv[1]
    OUT_FILE_PATH = sys.argv[2] if len(sys.argv) > 2 else None
    if OUT_FILE_PATH is None:
        with open(IN_FILE_PATH, 'r', encoding='utf-8') as f:
            for line in f:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                print(
                    line.rstrip('\r\n').encode('windows-1251').decode('utf-8')
                )
                print(new_line.rstrip('\r\n'))
        return
    with open(IN_FILE_PATH, 'r', encoding='utf-8') as f_in:
        with open(OUT_FILE_PATH, 'w', encoding='utf-8') as f_out:
            for line in f_in:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                f_out.write(new_line)

if __name__ == '__main__':
    main()
Сейчас проверю.
 
00дигриз
00дима
00димон
00дмитриева
00дарья
00даша
00дукф
00дюдюша
00АЛЕНА
00кира
00конт
00кошка))
00клубнивика
00катя
00кузякотик
00кусочек
00ксюшенька
00кристина
00кёха
00игорь
00иванов
00игра
00илья
00ирина
00ираорлова
00ищиук
00ноль
00носок
00огдш
00огого
00надюша
00надя
00неважно
00назира
00олеся
00настенька
00настя
00нетпароля
00наташа
00отсаси
00вика
00викая
00викуся
00гизи
00вита
00витя
00вова
00ввмм
00ведун
00галян
00веталь
00вуишд
00всенахуй
00гуля
00гурон
00гриша
00грамм
00вщср
00віта
00гщяут
00пдшсршфтеы
00поволоца
00помидор
00падгяф
 
Во, всё, скачался файл с примером, теперь понятно.

Поправил, но всё равно говнокод, дальше лень допиливать:

Python:
import sys

def main():
    if len(sys.argv) == 1:
        print('python3 xss52329.py input.txt output.txt')
    IN_FILE_PATH = sys.argv[1]
    OUT_FILE_PATH = sys.argv[2] if len(sys.argv) > 2 else None
    if OUT_FILE_PATH is None:
        with open(IN_FILE_PATH, 'r', encoding='utf-8') as f:
            for line in f:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                print(
                    line.rstrip('\r\n').encode('windows-1251').decode('utf-8')
                )
                print(new_line.rstrip('\r\n'))
        return
    with open(IN_FILE_PATH, 'r', encoding='utf-8') as f_in:
        with open(OUT_FILE_PATH, 'w', encoding='utf-8') as f_out:
            for line in f_in:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                f_out.write(new_line)

if __name__ == '__main__':
    main()
Почти все отрабатывает скрипт, в нескольких строках кракозябры, там где пробел в исходнике
 

Вложения

  • new.txt
    10 КБ · Просмотры: 11
Почти все отрабатывает скрипт, в нескольких строках кракозябры, там где пробел в исходнике
Да скрипт отрабатывает неплохо .
Да траблы декодировки там где пробелы.
Выделение_326.png

Ладно ,хрен с ними .
Как после обработки можно удалить те строки которые не дешифровались,чтобы все было пучком?
И думаю можно будет закрыть вопрос.:D
 
Во, всё, скачался файл с примером, теперь понятно.

Поправил, но всё равно говнокод, дальше лень допиливать:

Python:
import sys

def main():
    if len(sys.argv) == 1:
        print('python3 xss52329.py input.txt output.txt')
    IN_FILE_PATH = sys.argv[1]
    OUT_FILE_PATH = sys.argv[2] if len(sys.argv) > 2 else None
    if OUT_FILE_PATH is None:
        with open(IN_FILE_PATH, 'r', encoding='utf-8') as f:
            for line in f:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                print(
                    line.rstrip('\r\n').encode('windows-1251').decode('utf-8')
                )
                print(new_line.rstrip('\r\n'))
        return
    with open(IN_FILE_PATH, 'r', encoding='utf-8') as f_in:
        with open(OUT_FILE_PATH, 'w', encoding='utf-8') as f_out:
            for line in f_in:
                try:
                    new_line = line.encode('windows-1251').decode('utf-8')
                except UnicodeError:
                    new_line = line
                f_out.write(new_line)

if __name__ == '__main__':
    main()
нашел что еще не декодировал
Код:
0ïåðåäîç
0ìàëàäåö
0îâè÷îê
0îêòÿáðÿ
0Íîâûéïàðîëü
0꯱
Что в онлайн декодере получилось

Код:
0передоз
0маладец
0овичок
0октября
0Новыйпароль
0НШ±
 
Решил пробнуть плагин для Notepad++ так нотпад орет, что файл большой .
Вот почему я задался этим вопросом в теме по питону ,что помогут "выцепить" кривые строки,а не разбивать строки мудрить опять же искать ручками строки кривые.
Да там примерно до 300 Мб он открывает, если строка длинная то с таймингом отображения. Ну тогда сплитовать файлы, хотя это не решение.
Это костыли. Универсального решения попросту нет. Особенно если прикладным способом через некий готовый софт вы не можете это исправить. Штирлиц я не использую, но он откроет и большой файл.
В остальном, чем тратить кучу времени на исправление косяков, которые вам всё равно придется исправлять заменами, т.к. это перекодирование с искаженными символами, лучше быть внимательней в исходниках. Определять кодировки до сохранения во что либо.
Ну либо писать макрос например под EmEditor. Но мне это не нужно, поэтому я этого делать не буду
 
Штирлиц я не использую, но он откроет и большой файл.
4 версия не захотела открывать , долго муторно набирала обороты по 1 мб (следил в диспетчере) бросил .
лучше быть внимательней в исходниках.
Ну это понятно , юзал прогу для разбивки и она что-то начудила (она заточена под работу с базами combo) Вот и напортачила с кириллицей.
 
Тысячекратно извиняюсь за говнокоды, но это же слишком просто.
Python:
file_read = 'source.txt'
file_seave = 'result.txt'

fr = open(file_read, 'r', encoding='utf-8')
fw = open(file_seave, 'a+')

for line in fr:
    res = line.encode('windows-1251').decode('utf-8')
    print(f'{line}\t{res}')
    fw.write(line + '\n')
    fw.flush()
Если нужна проверка то перед записью стоит впихнуть регулярку
Python:
if re.match('[А-я]', res)
f28wdqA.png
 
Тысячекратно извиняюсь за говнокоды, но это же слишком просто.
Python:
file_read = 'source.txt'
file_seave = 'result.txt'

fr = open(file_read, 'r', encoding='utf-8')
fw = open(file_seave, 'a+')

for line in fr:
    res = line.encode('windows-1251').decode('utf-8')
    print(f'{line}\t{res}')
    fw.write(line + '\n')
    fw.flush()
Если нужна проверка то перед записью стоит впихнуть регулярку
Python:
if re.match('[А-я]', res)
f28wdqA.png
Гурончик, ну ты ж старый кодер, ну кто за тебя будет файлики закрывать?
Пацики по этому и пишут через with.

В остальном ты классный парень ;)
 
кто за тебя будет файлики закрывать?
Я просто неуч, а надо закрывать файлы с флагом "только для чтения"?
"При выходе из программы система автоматически закрывает все открытые дескрипторы" - какойто дядька в интернете
 
Гурончик, ну ты ж старый кодер, ну кто за тебя будет файлики закрывать?
Пацики по этому и пишут через with.

В остальном ты классный парень ;)
сейчас проверю.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх