JavaTM Platform
Standard Ed. 6

java.net
클래스 IDN

java.lang.Object 
  상위를 확장 java.net.IDN


public final class IDN
extends Object

일반적으로의 Unicode 표현과 ASCII 호환 인코딩 (ACE) 표현과의 사이에 국제화 도메인명 (IDN)의 변환을 실시하는 메소드를 제공합니다. 국제화 도메인명이 Unicode 의 전범위의 문자를 사용할 수 있는데 대해, 종래의 도메인명은 ASCII 문자에 제한되고 있습니다. ACE 는 ASCII 문자만을 사용하는 Unicode 캐릭터 라인의 인코딩이며, 도메인 네임 시스템 등, 종래의 도메인명 밖에 인식하지 않는 소프트웨어로 사용할 수가 있습니다.

국제화 도메인명은 RFC 3490 으로 정의되고 있습니다. RFC 3490 은 2 개의 조작을 정의하고 있습니다. ToASCII 와 ToUnicode 입니다. 이것들 2 개의 조작은,Stringprep 의 프로파일의 1 개인 Nameprep 알고리즘과Punycode 알고리즘을 사용해, 도메인명 캐릭터 라인의 상호 변환을 실시합니다.

각종 플래그를 사용하면, 전술의 변환 처리의 동작을 다음과 같이 조정할 수가 있습니다.

이러한 플래그의 논리합을 취할 수가 있습니다.

국제화 도메인명의 지원에 대해서는, 시큐리티를 고려하는 것이 중요합니다. 예를 들어, 영어의 도메인명에 대해서 「동형 이의어화」(비라틴 문자의 치환에 의한 악의가 있는 스펠 미스)을 하는 위험성이 있습니다. Unicode Technical Report #36 는, IDN 지원의 시큐리티상의 문제점과 가능한 해결책을 논의하고 있습니다. 어플리케이션은, 국제화 도메인명을 사용할 때에 적절한 시큐리티 대책을 베풀 책임이 있습니다.

도입된 버젼:
1.6

필드의 개요
static int ALLOW_UNASSIGNED
          미할당 코드 포인트의 처리를 허가하는 플래그.
static int USE_STD3_ASCII_RULES
          STD-3 ASCII 규칙에 근거하는 체크를 온으로 하는 플래그.
 
메소드의 개요
static String toASCII (String  input)
          RFC 3490 의 ToASCII 조작의 정의에 따라, Unicode 로부터 ASCII 호환 인코딩 (ACE)에의 캐릭터 라인 변환을 실시합니다.
static String toASCII (String  input, int flag)
          RFC 3490 의 ToASCII 조작의 정의에 따라, Unicode 로부터 ASCII 호환 인코딩 (ACE)에의 캐릭터 라인 변환을 실시합니다.
static String toUnicode (String  input)
          RFC 3490 의 ToUnicode 조작의 정의에 따라, ASCII 호환 인코딩 (ACE)으로부터 Unicode 에의 캐릭터 라인 변환을 실시합니다.
static String toUnicode (String  input, int flag)
          RFC 3490 의 ToUnicode 조작의 정의에 따라, ASCII 호환 인코딩 (ACE)으로부터 Unicode 에의 캐릭터 라인 변환을 실시합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

ALLOW_UNASSIGNED

public static final int ALLOW_UNASSIGNED
미할당 코드 포인트의 처리를 허가하는 플래그.

관련 항목:
정수 필드치

USE_STD3_ASCII_RULES

public static final int USE_STD3_ASCII_RULES
STD-3 ASCII 규칙에 근거하는 체크를 온으로 하는 플래그.

관련 항목:
정수 필드치
메소드의 상세

toASCII

public static String  toASCII(String  input,
                             int flag)
RFC 3490 의 ToASCII 조작의 정의에 따라, Unicode 로부터 ASCII 호환 인코딩 (ACE)에의 캐릭터 라인 변환을 실시합니다.

ToASCII 조작은 실패할 가능성이 있습니다. ToASCII 가 실패하는 것은, 그 임의의 스텝이 실패했을 경우입니다. ToASCII 조작이 실패하면(자), IllegalArgumentException 가 throw 됩니다. 이 경우, 그 입력 캐릭터 라인을 국제화 도메인명에 포함해야 하는 것이 아닙니다.

라벨이란, 도메인명의 개개의 부분입니다. RFC 3490 으로 정의되고 있는 원의 ToASCII 조작은, 단일 라벨상에서 밖에 동작하지 않습니다. 이 메소드는 라벨과 도메인명 전체의 양쪽 모두를 처리할 수 있습니다만, 그것은, 도메인명에 포함되는 라벨이 항상 닷으로 단락지어지고 있으면(자) 가정하는 것으로 실현되고 있습니다. 닷으로서 인식되는 문자는, 다음과 같습니다. \u002E (종지부), \u3002 (표 의종지부), \uFF0E (전각 종지부), 및 \uFF61 (반각표의종지부). 닷이 라벨 단락 문자로서 사용되고 있는 경우, 이 메소드는 게다가 변환 후의 출력 캐릭터 라인내에서 그러한 모든 것을 \u002E (종지부)로 변경합니다.

파라미터:
input - 처리하는 캐릭터 라인
flag - 처리 플래그. 0, 가능한 플래그의 임의의 논리합의 언젠가
반환값:
변환 후의 String
예외:
IllegalArgumentException - 입력 캐릭터 라인이 RFC 3490 의 스펙에 준거하고 있지 않는 경우

toASCII

public static String  toASCII(String  input)
RFC 3490 의 ToASCII 조작의 정의에 따라, Unicode 로부터 ASCII 호환 인코딩 (ACE)에의 캐릭터 라인 변환을 실시합니다.

이 편리한 메소드는, 다음과 같이 2 개의 인수를 취하는 버젼을 호출하는것 같이 동작합니다.

toASCII (input,  0);

파라미터:
input - 처리하는 캐릭터 라인
반환값:
변환 후의 String
예외:
IllegalArgumentException - 입력 캐릭터 라인이 RFC 3490 의 스펙에 준거하고 있지 않는 경우

toUnicode

public static String  toUnicode(String  input,
                               int flag)
RFC 3490 의 ToUnicode 조작의 정의에 따라, ASCII 호환 인코딩 (ACE)으로부터 Unicode 에의 캐릭터 라인 변환을 실시합니다.

ToUnicode 가 실패하는 것은 결코 없습니다. 에러가 발생했을 경우는, 입력 캐릭터 라인이 그대로 돌려주어집니다.

라벨이란, 도메인명의 개개의 부분입니다. RFC 3490 으로 정의되고 있는 원의 ToUnicode 조작은, 단일 라벨상에서 밖에 동작하지 않습니다. 이 메소드는 라벨과 도메인명 전체의 양쪽 모두를 처리할 수 있습니다만, 그것은, 도메인명에 포함되는 라벨이 항상 닷으로 단락지어지고 있으면(자) 가정하는 것으로 실현되고 있습니다. 닷으로서 인식되는 문자는, 다음과 같습니다. \u002E (종지부), \u3002 (표 의종지부), \uFF0E (전각 종지부), 및 \uFF61 (반각표의종지부).

파라미터:
input - 처리하는 캐릭터 라인
flag - 처리 플래그. 0, 가능한 플래그의 임의의 논리합의 언젠가
반환값:
변환 후의 String

toUnicode

public static String  toUnicode(String  input)
RFC 3490 의 ToUnicode 조작의 정의에 따라, ASCII 호환 인코딩 (ACE)으로부터 Unicode 에의 캐릭터 라인 변환을 실시합니다.

이 편리한 메소드는, 다음과 같이 2 개의 인수를 취하는 버젼을 호출하는것 같이 동작합니다.

toASCII (input,  0);

파라미터:
input - 처리하는 캐릭터 라인
반환값:
변환 후의 String

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.