Kotlin & JPA
[Kotlin] 한글 퓨니코드(Punycode)로 변환
Jane Kwon
2022. 1. 18. 09:55
반응형
* Punycode (퓨니코드) : 퓨니코드는 각국의 자국어표준코드에 대응되는 유니코드(Unicode)를 ASCII 형태로 변환하는 방식 중 하나로, 퓨니코드에 의한 도메인 이름이 기존의 영문 도메인 이름과 중복되는 것을 피하기 위해 변환된 코드 앞에는 xn--와 같이 몇 개의 문자가 부가 된다.
아래는 한글 도메인을 퓨니코드로 변환해주는 사이트 : https://inplaza.com/puny/index.php
도메인 이름을 받아서 한글인 경우에 퓨니코드로 변환해주는 코드를 짠다.
import java.net.IDN
class PunycodeUtils() {
fun punycodeEncode(domain: String): String {
var result = ""
val strings = domain.split(".")
strings.forEach {
if (result.isNotEmpty()) {
result += "."
}
result += IDN.toASCII(it)
}
return result
}
}
위 함수를 호출하면 아래와 같다.
println(punycodeEncode("imdomain.닷넷"));
// imdomain.xn--t60b56a
도메인 String에 적용되는 함수이므로 확장 함수를 사용하면 훨씬 보기 편하고 사용하기도 좋다.
(https://a-half-human-half-developer.tistory.com/113)
반대로 퓨니코드를 한글로 변환해줘야 할 때가 필요하다.
(https://a-half-human-half-developer.tistory.com/137)
(참고 : https://woony-soong.tistory.com/14)
반응형