웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > js

자바스크립트 unicode string으로 변환하거나 알아내는 방법

Last Modified : 2018-07-22 / Created : 2018-07-20
43,176
View Count

자바스크립트를 사용하여 유니코드(unicode) 문자열로 변환하는 방법을 알아봅니다. 어떻게하면 unicode를 문자열 Character로 변환하거나 반대로 unicode로 변환할 수 있을까요?




# 문자열을 unicode로 변환하기

먼저 문자열을 unicode로 변환하는 방법을 알아봅니다. 이때 사용 가능한 방법으로 아래와 같이 사용합니다.

'문자'.charCodeAt(0).toString(16);


이때 여러 문자를 동시에 변환하지 않고 문자 하나씩 변환할 수 있습니다. 예를들어 '한글'이라는 문자를 변환해볼까요?


! '한글'이라는 문자를 변환할 경우

한자씩 변환해야하므로 각각 입력해봅니다.
'한'.charCodeAt(0).toString(16);
수행하면 아래처럼 나타납니다.
\d55c

다음은 '글'을 변환해봅니다.
'글'.charCodeAt(0).toString(16);
이번에도 실행해볼까요?

\ae00

즉 단어 '한글'의 unicode는 아래와 같음을 확인했습니다.
\d55c\ae00


! 문자를 unicode로 변환하는 함수 만들기

하나씩 입력하려니 단어나 문장이 길어지면 매우 힘들겠군요. 간단하게 함수로 만들면 편할 것 같으니 함수를 작성하여 사용해보겠습니다.
charToUnicode = function(str) {
  if (!str) return false; // Escaping if not exist
  var unicode = '';
  for (var i = 0, l = str.length; i < l; i++) {
    unicode += '\\' + str[i].charCodeAt(0).toString(16);
  };
  return unicode;
}

이제 위함수를 사용해서 한번 어떻게 결과나 나타나는지 직접 실행해보겠습니다.
charToUnicode('한글');

"\d55c\ae00"

생각한것처럼 잘 동작합니다~



# unicode를 문자로 변환하는 방법

이번에는 반대로 유니코드를 한글로 변환해보려고 합니다. 어떻게 하면될까요?  이때는 String 객체의 fromCharCode() 메소드를 사용합니다.
String.fromCharCode(parseInt(unicode,16))


! unicode(유니코드)를 문자열로 변환 예제보기

위와 같이 첫번째 인자로 변환할 unicode값을 입력하고 두 번째는 16을 입력합니다. 그럼 방금 전에 한글로 변환한 값을 다시 unicode로 변환해보겠습니다.
String.fromCharCode(parseInt('\d55c',16));
String.fromCharCode(parseInt('\ae00',16));

위 코드를 실행하면 아래처럼 각각 반환됩니다.
'한'
'글'



# 마치면서

여기까지 unicode에서 문자로 ... 다시 문자에서 unicode로 변환하는 방법을 알아보았습니다. 언제 필요할까요? 상황에 따라 다르겠지만 문자열 출력시 인코딩을 인식 못하는 경우.. unicode값만 인식하는 경우가 필요할 수 있습니다. 이때 원래 문자값이 아닌 unicode로 변환하여 입력하면 정상 출력될 수 있습니다.

아래는 문자열을 유니코드로 변환하는 위 함수를 만들어 보았습니다. 직접 입력 후 변환해보세요.
아래의 글도 찾고 계시지 않나요?

    Previous

    [자바스크립트] 루트와 제곱 구하는 방법

    Previous

    자바스크립트 날짜, 시간 라이브러리 Momentjs 정보와 예제