프로그래밍/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이긴 하지만 ㅎㅎ... 언젠가 안드로이드 라이브러리로 하나 만들어보는 것도 좋을 것 같다.