2016-09-28 2 views
2

실제 텍스트 북에서 ASCII 메시지를 해독하기 위해 실제 텍스트에서 0과 1을 찾기위한 작업을했습니다. 문제는 모든 0과 1을 찾기가 정말 어렵다는 것입니다. 나는 그 중 많은 부분을 건너 뛰고 있다고 느낍니다. 이것은 ASCII 변환을 완전히 망칩니다. 것들 중 일부는 내가 노력 :비트가없는 ASCII 문자열 (패리티 없음)

  • '동기화'단어 만 알파벳 문자의 가정 (AZ, AZ)를 기반으로 문자를 수정하려고 공간 (또는 어떤 공간에 가까운)
  • 를 감지하여

그러나 나는 여전히 주된 문제가 동기화되고있는 상태에서 많은 것을 얻지 못했다. (새로운 char start는 언제 시작 하는가?) . 나는 아마도 책을 다시 읽어야 할 것이다. (한숨, 3 번 정도)하지만 ASCII 바이너리 스트림에서 비트가 누락되는 문제에 대한 아이디어가 있다면 궁금한가요?

+1

이 질문은 현재의 형태로 이해가되지 않습니다는 ... 제공하십시오 ... 당신의 입력 또는 예상 출력이 무엇인지 명확 (작은 샘플) 예 입력 및 예상 출력 (적어도 ... 올바른 결과를주지 않았고 결과가 잘못된 방법을 시도한 코드를 게시하는 것이 좋습니다.) –

+2

잘 모르겠습니다. 당신은 "실제 교과서에서"의미합니다 --- 당신은 인쇄 된 책 (종이에)을 스캔하고 스캐너 장치 (또는 스캔 한 이미지 또는 데이터 파일)에서 비트를 잃어 버리고 있습니까? 책을 스캔하고 인쇄 된 "0"및 "1"문자를 찾고 있지만 스캐너가 모든 문자를 기록하지 못하거나 대문자 O 또는 소문자 L로 잘못 표시하고 있습니까? 또는 책의 내용을 나타내는 완전한 파일 (PDF? ASCII? LaTeX? XML? bitmap?)로 시작했는데 예상했던 모든 데이터를 가져 오지 못했습니다. –

답변

0
all_ones_and_zeros = re.findall("[01]",corpus_of_text) 
BITS_PER_ASCII = 8 #(ascii characters are all the ordinals from 0-255 ... or 8 bits) 
asciis = zip([iter(all_ones_and_zeros)]*BITS_PER_ASCII) 
bins = [''.join(x) for x in asciis] 
chars = [chr(int(y,2)) for y in bins] 

print "MSG:",chars 

것 같아요 ...이 아니