프로그래밍/General

국기 이모지 동적으로 생성하기 (ISO 국가코드 사용)

Lou Park 2022. 7. 20. 23:28

국가 코드(ISO-3166-1 Alpha-2 Code)를 사용하여 국기 이모지 유니코드를 얻어오는 방법이다. 반대로, 국기 이모지를 받아서 국가 코드로 변환할 수도 있다. 반드시 countryCode가 제대로 들어온다는 보장이 있어야하기 때문에 "/^[a-z]{2}$/i" 같은 정규식을 추가해 줄 수도 있다. 

 

Javascript

const OFFSET = 127397;

function getFlag(countryCode) {
  const codePoints = [...countryCode.toUpperCase()].map(c => c.codePointAt() + OFFSET);
  return String.fromCodePoint(...codePoints);
}

 

Kotlin

const val OFFSET = 127397

private fun getFlag(countryCode: String): String {
    return countryCode.uppercase().map {
        String(intArrayOf(it.code + OFFSET), 0 , 1)
    }.joinToString("")
}

 

결과

"KR"을 넣어보면 🇰🇷이 튀어나올 것이다. 응용해서 국가 번호 Picker를 만드는데 사용했다. 캡쳐는...전부 +1이긴 하지만 ㅎㅎ... 언젠가 안드로이드 라이브러리로 하나 만들어보는 것도 좋을 것 같다.