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 からは非推奨となっています。

\X 形式は、CSSの仕様としてデコードの際に後続の半角スペース1つはデリミターとして扱われ無視されることに注意してください。 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のサロゲートペアとして2つのコードユニットで表します。その他の形式では、1文字は1つのコードポイントで表します。