티스토리 뷰
반응형
* 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)
반응형
'Kotlin & JPA' 카테고리의 다른 글
[JPA] TransactionRequiredException: Executing an update/delete query 에러 해결 (0) | 2022.01.20 |
---|---|
[Kotlin] Gradle json-simple 라이브러리 사용해서 json 파일 불러오기 (0) | 2022.01.18 |
[Kotlin] @FeignClient config 설정 (타임아웃 설정) (0) | 2022.01.13 |
[Kotlin] data class 생성자 (0) | 2022.01.10 |
[Kotlin] Extension Function(확장 함수) 사용법 (0) | 2022.01.04 |