using System;
public class Test
{
public static void Main( )
{
Console.WriteLine ( "One to Four hex digits via \\ x: W\x9W, X\x09 X, Y\x00 9Y, Z\x00 09Z" ) ;
Console.WriteLine ( "" ) ;
Console.WriteLine ( "Always four hex digits via \\ u: TAB\u0009 TAB" ) ;
Console.WriteLine ( "" ) ;
Console.WriteLine ( "Unicode-only BMP character: (\\ x) \x0F 02 (\\ u) \u0F02 " ) ;
Console.WriteLine ( "" ) ;
Console.WriteLine ( "Two UTF-16 Code Units (i.e. Surrogate Pair) via \\ x: \xD8 3D\xDC 7E" ) ;
Console.WriteLine ( "Two UTF-16 Code Units (i.e. Surrogate Pair) via \\ u: \uD83D \uDC7E " ) ;
Console.WriteLine ( "" ) ;
Console.WriteLine ( "Code Point / UTF-32 via \\ U: \U00000F02 " ) ;
Console.WriteLine ( "Code Point / UTF-32 via \\ U: \U0001F47E " ) ;
Console.WriteLine ( "" ) ;
Console.WriteLine ( "Highest Code Point / UTF-32 via \\ U: \U0010FFFF " ) ;
Console.WriteLine ( "-------------------" ) ;
Console.WriteLine ( "\\ xA1 followed by a ..." ) ;
Console.WriteLine ( "..non-alphanumeric character ([space]): \xA1 A" ) ;
Console.WriteLine ( "..non-hex digit (Z): \xA1 Z" ) ;
Console.WriteLine ( "..hex digit, but intended to be used as itself (A): \xA1 Ay, caramba!" ) ;
// \xA1Ay returns "ਚy" instead of "¡Ay" because \xA1A produces U+0A1A
Console.WriteLine ( "\\ x00A1 followed by a hex digit (A): \x00 A1Aye aye, Captain!" ) ;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUNvbnNvbGUuV3JpdGVMaW5lKCJPbmUgdG8gRm91ciBoZXggZGlnaXRzIHZpYSBcXHg6IFdceDlXLCBYXHgwOVgsIFlceDAwOVksIFpceDAwMDlaIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJBbHdheXMgZm91ciBoZXggZGlnaXRzIHZpYSBcXHU6IFRBQlx1MDAwOVRBQiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlVuaWNvZGUtb25seSBCTVAgY2hhcmFjdGVyOiAoXFx4KSBceDBGMDIgICAoXFx1KSBcdTBGMDIiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiIik7CgoJCUNvbnNvbGUuV3JpdGVMaW5lKCJUd28gVVRGLTE2IENvZGUgVW5pdHMgKGkuZS4gU3Vycm9nYXRlIFBhaXIpIHZpYSBcXHg6IFx4RDgzRFx4REM3RSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJUd28gVVRGLTE2IENvZGUgVW5pdHMgKGkuZS4gU3Vycm9nYXRlIFBhaXIpIHZpYSBcXHU6IFx1RDgzRFx1REM3RSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKCQkKCQlDb25zb2xlLldyaXRlTGluZSgiQ29kZSBQb2ludCAvIFVURi0zMiB2aWEgXFxVOiBcVTAwMDAwRjAyIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIkNvZGUgUG9pbnQgLyBVVEYtMzIgdmlhIFxcVTogXFUwMDAxRjQ3RSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKCQkKCQlDb25zb2xlLldyaXRlTGluZSgiSGlnaGVzdCBDb2RlIFBvaW50IC8gVVRGLTMyIHZpYSBcXFU6IFxVMDAxMEZGRkYiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwoJCQoJCUNvbnNvbGUuV3JpdGVMaW5lKCJcXHhBMSBmb2xsb3dlZCBieSBhIC4uLiIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIuLm5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVyIChbc3BhY2VdKTogXHhBMSBBIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIi4ubm9uLWhleCBkaWdpdCAoWik6IFx4QTFaIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIi4uaGV4IGRpZ2l0LCBidXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBpdHNlbGYgKEEpOiBceEExQXksIGNhcmFtYmEhIik7CgkJLy8gXHhBMUF5IHJldHVybnMgIuComnkiIGluc3RlYWQgb2YgIsKhQXkiIGJlY2F1c2UgXHhBMUEgcHJvZHVjZXMgVSswQTFBCgoJCUNvbnNvbGUuV3JpdGVMaW5lKCJcXHgwMEExIGZvbGxvd2VkIGJ5IGEgaGV4IGRpZ2l0IChBKTogXHgwMEExQXllIGF5ZSwgQ2FwdGFpbiEiKTsKCX0KfQ==
stdout
One to Four hex digits via \x: W W, X X, Y Y, Z Z
Always four hex digits via \u: TAB TAB
Unicode-only BMP character: (\x) ༂ (\u) ༂
Two UTF-16 Code Units (i.e. Surrogate Pair) via \x: 👾
Two UTF-16 Code Units (i.e. Surrogate Pair) via \u: 👾
Code Point / UTF-32 via \U: ༂
Code Point / UTF-32 via \U: 👾
Highest Code Point / UTF-32 via \U:
-------------------
\xA1 followed by a ...
..non-alphanumeric character ([space]): ¡ A
..non-hex digit (Z): ¡Z
..hex digit, but intended to be used as itself (A): ਚy, caramba!
\x00A1 followed by a hex digit (A): ¡Aye aye, Captain!