[NodeJS] node-fetch를 사용하여 Shift_JIS 웹사이트의 문자셋을 UTF-8로 변환 하는 방법

2024년 4월 18일
조회수 7
코멘트0

목차

이 포스트에서는 일본 웹사이트에서 사용되는 Shift_JIS 문자 코드를 UTF-8로 변환하는 방법에 대해 안내 합니다. 필요 라이브러리 설치부터 node-fetch로 받아온 Shift_JIS를 UTF-8로 변환 하는 방법, 그리고 이를 반복 사용 할 수 있는 함수와 그 함수 사용법에 대해 설명 하겠습니다.

필요 라이브러리 설치

Shift_JIS를 UTF-8로 변환하기 위해 iconv-lite와 node-fetch 라이브러리를 설치 합니다.

$ npm install iconv-lite node-fetch

Shift_JIS용 Fetch 함수

위의 내용을 기반으로 Shift_JIS사이트의 문자열을 자동으로 UTF-8로 변환하여 리턴해주는 함수를 제작 했습니다. 함수의 전체 코드는 다음과 같습니다.

const fetch = require('node-fetch');
const iconv = require('iconv-lite');

async function fetchAndConvert(url) {
    try {
        // Shift-JIS로 인코딩된 텍스트를 가져옵니다.
        const response = await fetch(url);
        const buffer = await response.buffer();

        // 가져온 데이터를 Shift-JIS에서 UTF-8로 변환합니다.
        const utf8String = iconv.decode(buffer, 'Shift_JIS');

        // 변환된 UTF-8 문자열을 반환합니다.
        return utf8String;
    } catch (error) {
        console.error('Error fetching or converting:', error);
        throw error;
    }
}

사용 예시

위에 만들어 둔 함수를 다음과 같이 호출하여 사용 가능 합니다.

const url = 'https://www.smbcnikko.co.jp'
fetchAndConvert(url)
    .then(utf8String => {
        console.log('Converted UTF-8 string:', utf8String);
    })
    .catch(error => {
        console.error('Error:', error);
    });

댓글 0