전문 Input 값에 한글이 들어가는경우 한글을 그대로 사용하면 안된다.
한글을 Uint8Array는 8비트 부호 없는 정수(0-255) 배열을 나타내는 JavaScript의 타입으로 변환해야 합니다.
console.log( iconv.encode('홍길동', 'euc-kr') )
iconv.encode('홍길동', 'euc-kr')의 결과로 받은 Uint8Array [200,171,177,230,181,191]는 "홍길동"이라는 한글 문자열을 EUC-KR 인코딩으로 변환한 바이트 배열입니다. 이를 자세히 설명하겠습니다:
- Uint8Array는 8비트 부호 없는 정수(0-255) 배열을 나타내는 JavaScript의 타입입니다.
- 각 숫자는 EUC-KR 인코딩에서 해당 한글 문자를 나타내는 바이트 값입니다:
- [200, 171]: "홍"의 EUC-KR 인코딩
- [177, 230]: "길"의 EUC-KR 인코딩
- [181, 191]: "동"의 EUC-KR 인코딩
- 이 바이트 배열을 16진수로 표현하면 다음과 같습니다:
[0xC8, 0xAB, 0xB1, 0xE6, 0xB5, 0xBF] - 이는 앞서 설명한 b'\xc8\xab\xb1\xe6\xb5\xbf'와 동일한 바이트 시퀀스입니다.
이 Uint8Array는 EUC-KR로 인코딩된 "홍길동"의 바이너리 표현입니다. 이 데이터를 EUC-KR을 지원하는 시스템에 전송하면, 해당 시스템은 이를 올바르게 "홍길동"으로 해석할 수 있습니다.만약 이 데이터를 다시 문자열로 변환하고 싶다면, iconv.decode() 함수를 사용할 수 있습니다:
const decodedString = iconv.decode(Buffer.from([200,171,177,230,181,191]), 'euc-kr');
console.log(decodedString); // 출력: 홍길동
이렇게 인코딩과 디코딩 과정을 통해 다양한 문자 인코딩 시스템 간에 데이터를 변환하고 전송할 수 있습니다
'프로그래밍 > Js' 카테고리의 다른 글
[es6] 단축평가 예제 (short-circuit evaluation) (0) | 2024.08.26 |
---|---|
제네레이터(generator) 의 실무 적용 (0) | 2024.08.23 |
vue3 부모->자식 자식->부모 데이터 전달방법 (0) | 2024.08.12 |
vue3 pinia 메모리 누수 증가 개선코드 (0) | 2024.08.02 |
Vue 3에서 mitt를 사용하여 이벤트 핸들러 중복 실행 방지하기 (0) | 2024.06.13 |