Skip to content

Punycode

지원 중단: v7.0.0 이후

[안정성: 0 - 지원 중단]

안정성: 0 안정성: 0 - 지원 중단

소스 코드: lib/punycode.js

Node.js에 번들된 punycode 모듈은 지원 중단됩니다. 이후 Node.js의 주요 버전에서는 이 모듈이 제거될 예정입니다. 현재 punycode 모듈에 의존하는 사용자는 사용자 제공 Punycode.js 모듈을 대신 사용하도록 전환해야 합니다. punycode 기반 URL 인코딩의 경우 url.domainToASCII 또는 일반적으로 WHATWG URL API를 참조하십시오.

punycode 모듈은 Punycode.js 모듈의 번들 버전입니다. 다음을 사용하여 접근할 수 있습니다:

js
const punycode = require('node:punycode')

Punycode는 국제화된 도메인 이름에서 주로 사용하기 위해 RFC 3492에 의해 정의된 문자 인코딩 스킴입니다. URL의 호스트 이름은 ASCII 문자만으로 제한되기 때문에 비 ASCII 문자를 포함하는 도메인 이름은 Punycode 스킴을 사용하여 ASCII로 변환해야 합니다. 예를 들어, 영어 단어 'example'로 번역되는 일본어 문자는 '例'입니다. 국제화된 도메인 이름 '例.com'( 'example.com'과 동일)은 Punycode에 의해 ASCII 문자열 'xn--fsq.com'으로 표현됩니다.

punycode 모듈은 Punycode 표준의 간단한 구현을 제공합니다.

punycode 모듈은 Node.js에서 사용되는 타사 종속성이며 개발자의 편의를 위해 제공됩니다. 모듈에 대한 수정 또는 기타 변경 사항은 Punycode.js 프로젝트로 전달해야 합니다.

punycode.decode(string)

추가됨: v0.5.1

punycode.decode() 메서드는 ASCII 전용 문자의 Punycode 문자열을 해당 유니코드 코드포인트 문자열로 변환합니다.

js
punycode.decode('maana-pta') // 'mañana'
punycode.decode('--dqo34k') // '☃-⌘'

punycode.encode(string)

Added in: v0.5.1

punycode.encode() 메서드는 유니코드 코드 포인트 문자열을 ASCII 전용 문자의 Punycode 문자열로 변환합니다.

js
punycode.encode('mañana') // 'maana-pta'
punycode.encode('☃-⌘') // '--dqo34k'

punycode.toASCII(domain)

Added in: v0.6.1

punycode.toASCII() 메서드는 국제화된 도메인 이름을 나타내는 유니코드 문자열을 Punycode로 변환합니다. 도메인 이름의 비 ASCII 부분만 변환됩니다. ASCII 문자만 포함하는 문자열에 punycode.toASCII()를 호출하면 아무런 효과가 없습니다.

js
// 도메인 이름 인코딩
punycode.toASCII('mañana.com') // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com') // 'xn----dqo34k.com'
punycode.toASCII('example.com') // 'example.com'

punycode.toUnicode(domain)

Added in: v0.6.1

punycode.toUnicode() 메서드는 Punycode로 인코딩된 문자를 포함하는 도메인 이름을 나타내는 문자열을 유니코드로 변환합니다. 도메인 이름의 Punycode로 인코딩된 부분만 변환됩니다.

js
// 도메인 이름 디코딩
punycode.toUnicode('xn--maana-pta.com') // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com') // '☃-⌘.com'
punycode.toUnicode('example.com') // 'example.com'

punycode.ucs2

Added in: v0.7.0

punycode.ucs2.decode(string)

Added in: v0.7.0

punycode.ucs2.decode() 메서드는 문자열에 있는 각 유니코드 기호의 숫자 코드 포인트 값을 포함하는 배열을 반환합니다.

js
punycode.ucs2.decode('abc') // [0x61, 0x62, 0x63]
// U+1D306 중앙의 사각형에 대한 서로게이트 쌍:
punycode.ucs2.decode('\uD834\uDF06') // [0x1D306]

punycode.ucs2.encode(codePoints)

추가된 버전: v0.7.0

punycode.ucs2.encode() 메서드는 숫자 코드 포인트 값의 배열을 기반으로 문자열을 반환합니다.

js
punycode.ucs2.encode([0x61, 0x62, 0x63]) // 'abc'
punycode.ucs2.encode([0x1d306]) // '\uD834\uDF06'

punycode.version

추가된 버전: v0.6.1

현재 Punycode.js 버전 번호를 식별하는 문자열을 반환합니다.