posix는 어떤 문자 인코딩을 지원합니까?

posix는 어떤 문자 인코딩을 지원합니까?

POSIX는 텍스트 파일과 함께 작동하는 grep, awk, 등과 같은 sed도구의 동작을 정의합니다. 텍스트 파일이므로 문자 인코딩 문제가 있는 것으로 가정합니다.

질문:

  • POSIX는 어떤 문자 인코딩을 지원합니까? (또는 POSIX 호환 시스템이 처리할 수 있는 텍스트 파일의 인코딩은 무엇입니까?)

답변1

POSIX는 특정 문자 인코딩을 요구하지 않습니다. 고정 위치에 있는 유일한 문자는 널 문자이며, 이는 00이어야 합니다.

모든 POSIX 요구 사항은 모든 문자가휴대용 문자 세트존재하다. 이식 가능한 문자 집합에는 인쇄 가능한 ASCII 문자, 공백, BEL, 백스페이스, 탭, 캐리지 리턴, 줄 바꿈, 세로 탭, 폼 피드 및 null이 포함됩니다. 다음 경우를 제외하고 이러한 인코딩의 위치나 방식은 지정되지 않습니다.

  • 각각은 단일 바이트(8비트)입니다.
  • Null은 모든 비트가 0인 것으로 표시됩니다.
  • 0부터 9까지의 숫자가 이 순서대로 연속적으로 나타납니다.

문자 표현에 다른 제한을 두지 않으므로 규격을 준수하는 시스템은 이러한 문자는 물론 다른 문자의 표현을 사용하여 인코딩을 자유롭게 지원할 수 있습니다.

./동일한 시스템의 서로 다른 로케일은 및 및를 제외하고 이러한 문자를 다르게 표현할 수 있습니다.

응용 프로그램이 문자 인코딩이 다른 로케일 쌍을 사용하거나 응용 프로그램이 사용하는 로케일과 인코딩이 다른 로케일을 사용하여 응용 프로그램의 데이터에 액세스하는 경우 결과는 지정되지 않습니다.

모든 POSIX 호환 시스템이 동일한 방식으로 처리해야 하는 유일한 파일은 전적으로 널 바이트로 구성된 파일입니다. 텍스트로 간주되는 파일은PCS 개행 문자의 인코딩된 표현으로 끝나는 줄.

답변2

POSIX 표준은 ASCII 문자의 ASCII 문자 집합과 동일한 순서를 갖는 POSIX 로케일을 도입합니다(POSIX 기본 정의 섹션 7.3.2).

또한 POSIX2_LOCALEDEF기호 상수가 정의된(XSI 호환이어야 하며 테스트할 수 있는 getconf POSIX2_LOCALEDEF) 시스템에서 시스템은 localedefPOSIX 기본 섹션 7.3에 지정된 로케일 정의뿐만 아니라 유틸리티를 사용하여 새 로케일 생성을 지원합니다.

POSIX 로케일 정의는 유니코드 값을 통한 문자 지정을 지원하지 않습니다. ISO/IEC TR 14652(다음에서 사용 가능)와 같은 최신 표준이 있습니다.ISO/IEC JTC1/SC22/WG20 홈 페이지) 및 ISO TR 30112(초안은 다음에서 확인 가능)ISO/IEC JTC1/SC35/WG5 홈 페이지) ISO/IEC TR 14652는 더 이상 사용되지 않습니다.

기타 관련 표준에는 ISO 14651(다음에서 사용 가능)이 포함됩니다.ISO ITTF 웹사이트)그리고유니코드 정렬 알고리즘(UCA, 유니코드 UTS#10).

이것유니코드::싸움CPAN의 Perl 모듈에는 여러 Unix 유틸리티의 유니코드 재작성이 포함되어 있습니다. sed 및 awk 스크립트와 한 줄 명령문은 Perl에서 (비교적 쉽게) 다시 작성하여 유니코드를 지원할 수 있습니다.

glibc의 경우,구성 요소 localedata에 대한 bugzilla 항목다양한 로케일에 대한 상태 보기가 제공될 수 있습니다.

관련 정보