문제

많은 언어에는 이진이 아닌 "일반 텍스트"만 처리하는 기능이 있습니다. 이것은 ASCII 범위 내의 문자 만 허용된다는 것을 의미합니까?

바이너리는 일련의 바이트 일 뿐이며 문자로 해석되는 일련의 바이트 인 일반 텍스트와 비슷하지 않습니까? 그렇다면 일반 텍스트는 이진과 동일한 데이터 형식 / 프로토콜을 저장할 수 있습니까?

도움이 되었습니까?

해결책

종종 의미하는 한 가지는 언어가 논리적 라인 터미네이터로서 값 10 또는 13과 같은 Certian Control 문자를 자유롭게 해석 할 수 있다는 것입니다. 다시 말해, 출력 작업은 끝에 이러한 문자를 자동으로 추가 할 수 있으며 입력 작업은 입력에서 벗어나거나 읽기를 종료 할 수 있습니다.

대조적으로, "바이너리"데이터에서 작업하는 것을 광고하는 언어 I/O 작업은 일반적으로 데이터 길이에 대한 입력 매개 변수가 포함됩니다. 수행.

다른 팁

일반 텍스트는 사람을 읽을 수 있으며 이진 파일은 일반적으로 인쇄 할 수없고 인쇄 할 수없는 문자로 구성되기 때문에 인간이 읽을 수 없습니다.

텍스트 편집기 (예 : 메모장 또는 VIM)가있는 JPEG 파일을 열면 내가 의미하는 바를 이해할 수 있습니다.

이진 파일은 일반적으로 구문 분석이 필요하지 않기 때문에 속도를 최적화하는 방식으로 구성됩니다. 일반 텍스트 파일은 수작업으로 편집 할 수 있으며 이진 파일은 아닙니다.

"일반 텍스트"는 몇 가지 의미를 가질 수 있습니다.

이러한 맥락에서 가장 유용한 것은 특정 컴퓨터 시스템이 "텍스트"문자를 고려하는 유한 한 세트로 변환 할 수있는 바이트 시퀀스로 구성된 이진 파일 일뿐입니다.

두 번째 의미, 다소 연결된 두 번째 의미는 시스템이 인식 가능한 알파벳의 구성원으로 인간이 읽을 수있는 기호로 이러한 "텍스트 문자"를 표시 해야하는 제한입니다. 종종 기록되지 않은 의미는 번역 메커니즘이 ASCII라는 것입니다.

세 번째, 더 제한적인 의미는이 시스템이 "간단한"텍스트 편집기/뷰어 여야한다는 것입니다. 일반적으로 ASCII 인코딩을 암시합니다. 그러나 실제로 펑키 한 형식으로 인코딩 된 인간, 읽기 텍스트, 독점 프로그램, VI 텍스트 편집기 ASCII 인코딩 파일을 읽는 것과는 별다른 차이가 거의 없습니다.

프로그래밍 컨텍스트 내에서, 프로그래밍 환경 (OS + 시스템 API + 언어 기능으로 구성)은 "텍스트"문자 세트와 이러한 "텍스트"문자로 변환하도록 읽을 수있는 인코딩 세트를 모두 정의합니다. 이것은 반드시 ASCII, 영어 또는 8 비트를 암시 할 필요는 없습니다. 예를 들어, Perl은 "문자"의 전체 유니 코드 세트를 기본적으로 읽고 사용할 수 있습니다.

특정 질문에 답하기 위해 문자열 종료 규칙이 적용되어야한다는 경고와 함께 "문자"문자열을 사용하여 임의의 바이트 시퀀스를 전송할 수 있습니다. 문제는 이미 "프로세스 문자 데이터"에 존재하는 기능은 아마도 이진 데이터를 다루는 유용한 기능이 없을 것입니다.

일반적으로 언어/환경/기능에 따라 다릅니다.

이진 데이터는 항상 다음과 같습니다. 이진. 수정없이 전송됩니다.

"일반 텍스트"모드는 다음 중 하나 이상을 의미 할 수 있습니다.

  • 바이트 스트림은 선으로 나뉩니다. 선 구분자는 r, n 또는 r n 또는 n r입니다. 때로는 os 의존적이기도합니다 ( *nix 좋아요 n, Windows는 r n을 좋아합니다). 라인 엔딩은 읽기 응용 프로그램에 대해 조정될 수 있습니다.
  • 문자 인코딩이 조정될 수 있습니다. 환경은 소스 인코딩을 인코딩으로 감지 및/또는 변환 할 수 있습니다.
  • 아마도 다른 전환 이이 목록에 추가되어야하지만 지금은 더 이상 생각할 수 없습니다.

기술적으로 아무것도 없습니다. 일반 텍스트는 이진 데이터의 형태입니다. 그러나 주요 차이점은 값이 저장되는 방법입니다. 정수가 어떻게 저장 될 수 있는지 생각해보십시오. 이진 데이터에서는 2의 보완 형식을 사용하며 아마도 32 비트의 공간을 차지할 것입니다. 텍스트 형식에서 숫자는 대신 일련의 유니 코드 숫자로 저장됩니다. 따라서 숫자 50은 이진에서 0x32 (32 비트를 차지하기 위해 패딩)로 저장되지만 일반 텍스트로 '5' '0'으로 저장됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top