0

解碼結果

Unicode轉義

編碼結果

Unicode轉義
格式
A-F

關於 Unicode 跳脫序列 (Unicode Escape Sequence)

將字串轉換為 Unicode 跳脫序列的格式。

Unicode 跳脫序列將 1 個字元轉換為類似 \uXXXX 的 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碼位的十六進位表示 (空格分隔)

以上幾種格式在 RFC 5137 (ASCII Escaping of Unicode Characters) 中作為 BEST CURRENT PRACTICE 被提及,但並沒有國際標準。

%uXXXX 格式雖然被 Microsoft IIS 支援,但是是非標準格式。雖然 C# 的 System.Web.HttpUtility.UrlEncodeUnicode 可以轉換為 %u 格式,但該方法從 .NET Framework 4.5 起已不推薦使用。

請注意 \X 格式作為 CSS 的規範,在解碼時後接的 1 個半形空格會被視為分隔符號而被忽略。在 U+XXXX 或 0xX 格式中,編碼時每個字元用半形空格分隔,解碼時與 \X 格式一樣,後接的 1 個連續半形空格會被忽略。

通過 Unicode 名稱進行跳脫

作為 Unicode 跳脫序列,也支援通過 Unicode 名稱進行跳脫。

格式「A」的轉換結果說明 / 程式語言
\N{name}\N{LATIN CAPITAL LETTER A}C++23, Python, Perl

Unicode 名稱可以在 Names List Charts - UnicodeNamesList.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 的代理對用 2 個代碼單元表示。在其他格式中,1 個字元用 1 個碼位表示。