본문 바로가기

nodejs - 오픈소스

완충기

완충기

안정성 : 2- 안정

소스 코드 : lib / buffer.js

Buffer개체는 고정 길이 바이트 시퀀스를 나타내는 데 사용됩니다. 많은 Node.js API는 Buffer.

 Buffer클래스는 JavaScript 클래스의 하위 Uint8Array클래스이며 추가 사용 사례를 다루는 메서드로 확장합니다. Node.js API는 s가 지원되는 Uint8Array모든 곳에서 일반을 허용 Buffer합니다.

Buffer클래스는 않을 사람이 이제까지 사용에 필요한 것 만들기, 세계 범위 내이다 require('buffer').Buffer.

 

버퍼 및 문자 인코딩

역사

버전변화

v6.4.0

latin1의 별칭으로 도입 되었습니다 binary.

v5.0.0

더 이상 사용되지 않는 raw및 raws인코딩을 제거했습니다 .

Buffers와 문자열 사이를 변환 할 때 문자 인코딩을 지정할 수 있습니다. 문자 인코딩이 지정되지 않은 경우 UTF-8이 기본값으로 사용됩니다.

 

현재 Node.js에서 지원하는 문자 인코딩은 다음과 같습니다.

  • 'utf8': 멀티 바이트 인코딩 유니 코드 문자입니다. 많은 웹 페이지 및 기타 문서 형식은 UTF-8을 사용 합니다. 이것이 기본 문자 인코딩입니다. 를 디코딩하는 경우 Buffer에만 유효한 UTF-8 데이터를 포함하지 않는 문자열로, 유니 코드 대체 문자는 U+FFFD이러한 오류를 나타내는 데 사용됩니다.

  • 'utf16le': 멀티 바이트 인코딩 유니 코드 문자입니다. 와 달리 'utf8'문자열의 각 문자는 2 바이트 또는 4 바이트를 사용하여 인코딩됩니다. Node.js  UTF-16  little-endian 변형 만 지원합니다 .

  • 'latin1': Latin-1은 ISO-8859-1을 나타냅니다 . 이 문자 인코딩은에서 U+0000까지 의 유니 코드 문자 만 지원합니다 U+00FF. 각 문자는 단일 바이트를 사용하여 인코딩됩니다. 해당 범위에 맞지 않는 문자는 잘리고 해당 범위의 문자에 매핑됩니다.

변환 Buffer전술 중 하나를 사용하여 문자열로는 복호 및 문자열로 변환이라 Buffer부호화라고한다.

Node.js는 다음과 같은 두 가지 바이너리-텍스트 인코딩도 지원합니다. 이진-텍스트 인코딩의 경우 명명 규칙이 반대입니다. a Buffer를 문자열로 변환하는 것은 일반적으로 인코딩이라고하고 문자열을 a Buffer로 디코딩 하는 것을 말합니다.

  • 'base64': Base64 인코딩. Buffer문자열에서를 만들 때이 인코딩은 RFC 4648, 섹션 5에 지정된대로 "URL 및 파일 이름 안전 알파벳"을 올바르게 허용합니다 . base64로 인코딩 된 문자열에 포함 된 공백, 탭 및 새 줄과 같은 공백 문자는 무시됩니다.

  • 'hex': 각 바이트를 두 개의 16 진수 문자로 인코딩합니다. 유효한 16 진수 문자 만 포함하는 문자열을 디코딩 할 때 데이터 잘림이 발생할 수 있습니다. 예는 아래를 참조하십시오.

다음 레거시 문자 인코딩도 지원됩니다.

  • 'ascii': 7 비트 ASCII 데이터 전용입니다. 문자열을로 인코딩 할 때 이는를 사용하는 Buffer것과 같습니다 'latin1'.  Buffer 문자열로 디코딩 할 때이 인코딩을 사용하면 추가로 'latin1'. 일반적으로이 인코딩을 사용할 이유가 없어야 합니다. ASCII 전용 텍스트를 인코딩하거나 디코딩 할 때 'utf8' 데이터가 항상 ASCII 전용 인 것으로 알려진 경우 'latin1')가 더 나은 선택 이기 때문 입니다. 레거시 호환성을 위해서만 제공됩니다.

  • 'binary': 'latin1'. 이 주제에 대한 자세한 배경 정보는 2 진 문자열  참조하십시오 . 여기에 나열된 모든 인코딩이 문자열과 이진 데이터간에 변환되므로이 인코딩의 이름은 매우 오해의 소지가 있습니다. 문자열과 Buffers 간의 변환 에는 일반적으로 'utf-8'올바른 선택입니다.

  • 'ucs2': 'utf16le'. UCS-2는 U + FFFF보다 큰 코드 포인트를 가진 문자를 지원하지 않는 UTF-16 변형을 참조하는 데 사용되었습니다. Node.js에서 이러한 코드 포인트는 항상 지원됩니다.

현대 웹 브라우저는 다음과 WHATWG 인코딩 표준 을 모두 별칭 'latin1'과 'ISO-8859-1'에를 'win-1252'.  http.get(), 와 같은 작업을 수행하는 동안 반환 된 문자 집합이 WHATWG 사양에 나열된 문자 집합 중 하나 인 경우 서버가 실제로 'win-1252'인코딩 된 데이터를 반환 'latin1'할 수 있으며 인코딩을 사용 하면 문자를 잘못 디코딩 할 수 있습니다.