오늘은 모던 JavaScript 튜토리얼에서 텍스트 디코더와 텍스트 인코더에 대해 공부했다. 작성한 질문은 다음과 같다.
텍스트 데이터가 있는 파일이 주어졌을 때, 자바스크립트 엔진은 내장 객체 TextDecoder를 이용하여 주어진 버퍼와 인코딩으로 값을 실제 자바스크립트 문자열로 읽을 수 있게 해 준다. 과정은 다음과 같다.
1. 객체를 생성한다.
let docoder = new TextDecoder([label], [options]);
여기서 label의 Default는 utf-8이지만 big5와 같은 다른 인코딩 방식도 지원한다.
options는 선택 항목이며, fatal은 boolean으로 true일 경우, 잘못된 글자(디코딩 불가능한 글자)를 대상으로 예외를 던지고, ignoreBOM은 boolean으로 true일 경우, 사용되지 않는 바이트 순서 표식을 무시한다.
2. 객체를 디코딩한다.
let str = decoder.decode([input], [options]);
여기서 input은 디코딩할 BufferSource를 입력하는 곳이다.
options는 선택 항목이며 stream이라는 옵션이 존재하는데, 많은 양의 데이터를 받아 decoder를 반복적으로 호출할 때 decoding이 반복적으로 실행되며 멀티 바이트 문자가 많은 데이터로 분할될 수 있는데, 이 옵션을 이용해 TextDecoder에 'unfinished' 문자를 입력시켜 데이터 분할을 방지할 수 있다.
TextDecoder에 반대로 TextEncoder는 문자열을 바이트로 변환하고, 인코딩 시 utf8만 지원한다.
'TIL' 카테고리의 다른 글
TIL - 20220916 (0) | 2022.09.16 |
---|---|
TIL - 20220915 (0) | 2022.09.15 |
TIL - 20220913 (0) | 2022.09.13 |
TIL - 20220912 (0) | 2022.09.12 |
TIL - 20220911 (0) | 2022.09.11 |