0

디코딩 결과

Unicode 이스케이프

인코딩 결과

Unicode 이스케이프
형식
A-F

Unicode 이스케이프 시퀀스에 대해서

문자열을 Unicode 이스케이프 시퀀스 형식으로 변환합니다.

Unicode 이스케이프 시퀀스는 1문자를 \uXXXX와 같은 16진수 4자리 코드 포인트 형식으로 변환합니다. 예를 들어 'あ'는 '\u3042'가 됩니다.

DenCode에서는 \uXXXX 형식 외에도, 다음 형식의 표기법에도 대응하고 있습니다.

형식「ABC」의 변환 결과설명 / 프로그래밍 언어
\uXXXX\u0041\u0042\u0043일반적인 Unicode 이스케이프 시퀀스
\u{X}\u{41}\u{42}\u{43}Lua
\x{X}\x{41}\x{42}\x{43}Perl
\X\41\42\43CSS
&#xX;ABCHTML, XML
%uXXXX%u0041%u0042%u0043퍼센트 인코딩 (비표준)
U+XXXXU+0041 U+0042 U+0043코드 포인트의 Unicode 표준 표기 (스페이스 구분)
0xX0x41 0x42 0x43코드 포인트의 16진법 표기 (스페이스 구분)

상기 몇 가지 형식은 RFC 5137 (ASCII Escaping of Unicode Characters)에서 BEST CURRENT PRACTICE로서 언급되고 있지만, 국제 표준 등은 없습니다.

%uXXXX 형식은 Microsoft IIS가 지원하고 있지만, 비표준 형식입니다. C#의 System.Web.HttpUtility.UrlEncodeUnicode에서 %u 형식으로 인코딩할 수 있지만, 이 메서드는 .NET Framework 4.5부터는 비권장(Deprecated)되었습니다.

\X 형식은 CSS 사양으로서 디코딩 시 후속 반각 스페이스 1개는 구분자(Delimiter)로 취급되어 무시되는 것에 주의해 주세요. U+XXXX나 0xX 형식에서는 인코딩 시 1문자마다 반각 스페이스로 구분되고, 디코딩 시에는 \X 형식과 마찬가지로 후속 연속 반각 스페이스 1개는 무시됩니다.

Unicode 이름에 의한 이스케이프

Unicode 이스케이프 시퀀스로서, Unicode 이름에 의한 이스케이프에도 대응하고 있습니다.

형식「A」의 변환 결과설명 / 프로그래밍 언어
\N{name}\N{LATIN CAPITAL LETTER A}C++23, Python, Perl

Unicode 이름은 Names List Charts - Unicode 또는 NamesList.txt - Unicode에서 확인할 수 있습니다.

Unicode 이스케이프 시퀀스에서의 Unicode BMP 범위 외 문자

Unicode의 비BMP 문자에 대해서는, 코드 포인트가 4자리에 들어가지 않기 때문에, 프로그래밍 언어마다 다음 형식의 표기법으로 나타냅니다.

예를 들어 '😀'(U+1F600)을 변환한 결과는 다음과 같습니다.

형식「😀」(U+1F600)의 변환 결과프로グラミング 언어
\uXXXX\uD83D\uDE00Java, Kotlin, Scala
\u{X}\u{1F600}C++23, Rust, Swift, JavaScript, PHP, Ruby, Dart, Lua
\U00XXXXXX\U0001F600C, C++, Objective-C, C#, Go, Python, R
\x{X}\x{1F600}Perl
\X\1F600CSS
&#xX;😀HTML, XML
%uXXXX%uD83D%uDE00-
U+XXXXU+1F600-
0xX0x1F600-
\N{name}\N{GRINNING FACE}C++23, Python, Perl

\uXXXX와 %uXXXX 형식에서는, 비BMP 문자는 UTF-16의 서로게이트 페어(Surrogate Fair)로서 2개의 코드 유닛으로 나타냅니다. 그 외의 형식에서는 1문자는 1개의 코드 포인트로 나타냅니다.