[Kotlin] 한글 퓨니코드(Punycode)로 변환
* Punycode (퓨니코드) : 퓨니코드는 각국의 자국어표준코드에 대응되는 유니코드(Unicode)를 ASCII 형태로 변환하는 방식 중 하나로, 퓨니코드에 의한 도메인 이름이 기존의 영문 도메인 이름과 중복되는 것을 피하기 위해 변환된 코드 앞에는 xn--와 같이 몇 개의 문자가 부가 된다.
아래는 한글 도메인을 퓨니코드로 변환해주는 사이트 : https://inplaza.com/puny/index.php
한글도메인 퓨니코드 변환기
홈>도메인>한글도메인 변환기 퓨니코드(Punycode)란...? 다국어 도메인의 표준화 작업이 이루어지기 전에는 Verisign의 한글도메인 연결방식이 [레이스코드]와 [퓨니코드]를 병행해서 사용하였는데,
inplaza.com
도메인 이름을 받아서 한글인 경우에 퓨니코드로 변환해주는 코드를 짠다.
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)
[Kotlin] Extension Function(확장 함수) 사용법
자바에서는 여러 클래스에서 사용해야하는 중복된 코드를 Utils 클래스로 빼서 사용하기도 하는데 코틀린에서도 Utils 클래스로 분리가 필요한 메소드 사용이 필요해졌다. 코틀린에서는, 이런 클
a-half-human-half-developer.tistory.com
반대로 퓨니코드를 한글로 변환해줘야 할 때가 필요하다.
(https://a-half-human-half-developer.tistory.com/137)
[Kotlin] 퓨니코드(Punycode)를 한글로 변환
필요에 따라 퓨니코드를 한글로 변환해주는 작업을 진행 했는데 https://a-half-human-half-developer.tistory.com/118 [Kotlin] 한글 퓨니코드(Punycode)로 변환 * Punycode (퓨니코드) : 퓨니코드는 각국의 자국..
a-half-human-half-developer.tistory.com
(참고 : https://woony-soong.tistory.com/14)