0

Kết quả Giải mã

Unicode Escape

Kết quả Mã hóa

Unicode Escape
Định dạng
A-F

Về Unicode Escape Sequence

Chuyển đổi chuỗi sang định dạng Unicode escape sequence.

Unicode escape sequence chuyển đổi 1 ký tự thành định dạng mã point 4 chữ số thập lục phân như \uXXXX. Ví dụ, "あ" trở thành "\u3042".

Ngoài định dạng \uXXXX, DenCode cũng hỗ trợ các định dạng biểu diễn sau:

Định dạngKết quả chuyển đổi "ABC"Mô tả / Ngôn ngữ lập trình
\uXXXX\u0041\u0042\u0043Unicode escape sequence phổ biến
\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%u0043Percent-encoding (Không chuẩn)
U+XXXXU+0041 U+0042 U+0043Biểu diễn chuẩn Unicode của mã point (phân tách bằng dấu cách)
0xX0x41 0x42 0x43Biểu diễn thập lục phân của mã point (phân tách bằng dấu cách)

Một số định dạng trên được đề cập là BEST CURRENT PRACTICE trong RFC 5137 (ASCII Escaping of Unicode Characters), nhưng không có tiêu chuẩn quốc tế nào.

Định dạng %uXXXX được Microsoft IIS hỗ trợ, nhưng là định dạng không chuẩn. Có thể mã hóa thành định dạng %u bằng System.Web.HttpUtility.UrlEncodeUnicode của C#, nhưng phương thức này đã không được khuyến nghị từ .NET Framework 4.5.

Lưu ý rằng đối với định dạng \X, theo đặc tả CSS, khi giải mã, một dấu cách bán giác theo sau sẽ được coi là dấu phân cách và bị bỏ qua. Đối với các định dạng U+XXXX và 0xX, khi mã hóa, mỗi ký tự được phân tách bằng một dấu cách bán giác, và khi giải mã, giống như định dạng \X, một dấu cách bán giác liền sau sẽ bị bỏ qua.

Escape bằng tên Unicode

Cũng hỗ trợ escape bằng tên Unicode như một Unicode escape sequence.

Định dạngKết quả chuyển đổi "A"Mô tả / Ngôn ngữ lập trình
\N{name}\N{LATIN CAPITAL LETTER A}C++23, Python, Perl

Tên Unicode có thể được kiểm tra tại Names List Charts - Unicode hoặc NamesList.txt - Unicode.

Ký tự ngoài phạm vi Unicode BMP trong Unicode escape sequence

Đối với các ký tự không thuộc BMP của Unicode, vì mã point không vừa trong 4 chữ số, chúng được biểu diễn bằng các định dạng sau tùy theo ngôn ngữ lập trình.

Ví dụ, kết quả chuyển đổi "😀" (U+1F600) như sau:

Định dạngKết quả chuyển đổi "😀"(U+1F600)Ngôn ngữ lập trình
\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

Trong các định dạng \uXXXX và %uXXXX, các ký tự không thuộc BMP được biểu diễn bằng 2 đơn vị mã dưới dạng cặp thay thế (surrogate pair) UTF-16. Trong các định dạng khác, 1 ký tự được biểu diễn bằng 1 mã point.