idn과 id2의 차이점은 무엇입니까?

idn과 id2의 차이점은 무엇입니까?

차이점이 뭐야국제화된 도메인 이름그리고국제화된 도메인 이름 2? (둘 다 거의 동일한 작업을 수행하는 이유. 출력이 다른 이유. 어느 것을 사용해야 하는지)

입력 파일:

Amazon.com
ama--zon.com
a--mazon.com
--amazon.com
amazon--.com
amazon-.com

cat infile | idn
Amazon.com
ama--zon.com
a--mazon.com
--amazon.com
amazon--.com
amazon-.com

cat infile | idn2
amazon.com
ama--zon.com
a--mazon.com
idn2: toAscii: string start/ends with forbidden hyphen

(마지막 3개 항목)

THK

고쳐 쓰다:이것이 제가 찾고 있는 답변입니다. 감사해요. 투표가 임박했습니다.

GNU IDN 라이브러리 - Libidn GNU libidn2는 GNU libidn의 후속 버전입니다. IDNA 2008 및 TR46 구현과 함께 제공되며 GNU libidn에 대한 호환성 레이어도 제공합니다.

답변1

귀하가 말하는 "IDN"은 IDNA2003이고 "IDN2"는 IDNA2008(2010 지정)입니다.

둘 사이에는 차이점이 있으며 "복잡하다". 사용 사례나 제한 사항을 자세히 설명하지 않았으므로 다른 리소스가 많기 때문에 깊이 들어갈 필요가 없습니다. 그러나 주요 차이점 중 하나는 일부 문자와 해당 매핑, 대문자 처리입니다.

또한 IDNA의 목적은 US-ASCII 이외의 문자를 사용하여 DNS에서 이름을 처리하는 것이므로 선택한 이름은 IDNA와 관련이 없습니다. 독일어 eszett처럼: ß

따라서 다음을 목격하십시오.

$ idn straße.de
strasse.de
$ idn2 straße.de
xn--strae-oqa.de

예, 이 기능은 두 표준 간의 중요한 차이점 중 하나입니다.

더 중요한 것은 "어느 것을 선택할 것인가"이다. 이는 귀하의 선택이 아니며 도메인이 위치한 레지스트리에 따라 다릅니다. 현재(2023년) 모든 등록 기관은 IDNA2008을 사용해야 합니다(그러나 어떤 등록 기관도 아직 IDNA2003을 사용하고 있지 않다는 것을 증명할 수는 없습니다). 그러나 2010년 이전에 IDN을 허용하기 시작하면 향후 호환성도 유지해야 하므로 도메인 이름이 다음과 같을 수 있습니다. IDNA2003을 준수하고 IDNA2008에 따라 유효하지 않은 등록이므로 삭제되면 누구도 이 레지스트리에 다시 등록할 수 없습니다. 그런 다음 IDNA를 전혀 따르지 않는 다른 레지스트리가 있으므로 이모티콘과 같은 모든 종류의 다른 항목을 허용합니다.

위의 특정 예에서는 amazon-.comDNS 규칙에 따라(따라서 IDN 자체와는 별개) 어떤 레이블도 하이픈으로 시작하거나 끝날 수 없습니다. 따라서 그 이름은 결코 유효하지 않습니다.

관련 정보