using System;
public class Test
{
public static void Main()
{
// Code Point U+1F47E
Console.WriteLine("\\U0001F47E = \U0001F47E");
Console.WriteLine("");
// Specifying the UTF-16 Surrogate Pair raises a "CS1009
// Unrecognized escape sequence" error in LINQPad and Visual
// Studio 2015.
//
// Here it returns the default replacement character due to ignoring
// the first 4 hex digits and only seeing 0xDC7E, which is a
// surrogate code unit.
Console.WriteLine("\\UD83DDC7E = \UD83DDC7E");
Console.WriteLine("");
// The following is invalid, and raises an error in LINQPad and in
// Visual Studio 2015. But here it returns an empty string due to
// ignoring the first 4 hex digits and only seeing 0x0000.
Console.WriteLine("\\UD83D0000 = \UD83D0000");
Console.WriteLine("");
// The following are invalid, and raises an error in LINQPad and in
// Visual Studio 2015. But here it returns an "A" due to ignoring
// the first 4 hex digits and only seeing 0x0041.
Console.WriteLine("\\UD83D0041 = \UD83D0041");
Console.WriteLine("\\U80000041 = \U80000041");
Console.WriteLine("\\UFFFF0041 = \UFFFF0041");
Console.WriteLine("");
// The following is invalid, and raises an error HERE (as expected),
// due to the first 4 hex digits being below the 0x8000 mark.
//Console.WriteLine("\\U7FFF0041 = \U7FFF0041");
}
}
dXNpbmcgU3lzdGVtOwogCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQkvLyBDb2RlIFBvaW50IFUrMUY0N0UKCQlDb25zb2xlLldyaXRlTGluZSgiXFxVMDAwMUY0N0UgPSBcVTAwMDFGNDdFIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIiIpOwoJCQoJCS8vIFNwZWNpZnlpbmcgdGhlIFVURi0xNiBTdXJyb2dhdGUgUGFpciByYWlzZXMgYSAiQ1MxMDA5CgkJLy8gVW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZSIgZXJyb3IgaW4gTElOUVBhZCBhbmQgVmlzdWFsCgkJLy8gU3R1ZGlvIDIwMTUuCgkJLy8KCQkvLyBIZXJlIGl0IHJldHVybnMgdGhlIGRlZmF1bHQgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGR1ZSB0byBpZ25vcmluZwoJCS8vIHRoZSBmaXJzdCA0IGhleCBkaWdpdHMgYW5kIG9ubHkgc2VlaW5nIDB4REM3RSwgd2hpY2ggaXMgYQoJCS8vIHN1cnJvZ2F0ZSBjb2RlIHVuaXQuCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlxcVUQ4M0REQzdFID0gXFVEODNEREM3RSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKCgkJLy8gVGhlIGZvbGxvd2luZyBpcyBpbnZhbGlkLCBhbmQgcmFpc2VzIGFuIGVycm9yIGluIExJTlFQYWQgYW5kIGluCgkJLy8gVmlzdWFsIFN0dWRpbyAyMDE1LiBCdXQgaGVyZSBpdCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBkdWUgdG8KCQkvLyBpZ25vcmluZyB0aGUgZmlyc3QgNCBoZXggZGlnaXRzIGFuZCBvbmx5IHNlZWluZyAweDAwMDAuCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlxcVUQ4M0QwMDAwID0gXFVEODNEMDAwMCIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKCQkKCQkvLyBUaGUgZm9sbG93aW5nIGFyZSBpbnZhbGlkLCBhbmQgcmFpc2VzIGFuIGVycm9yIGluIExJTlFQYWQgYW5kIGluCgkJLy8gVmlzdWFsIFN0dWRpbyAyMDE1LiBCdXQgaGVyZSBpdCByZXR1cm5zIGFuICJBIiBkdWUgdG8gaWdub3JpbmcKCQkvLyB0aGUgZmlyc3QgNCBoZXggZGlnaXRzIGFuZCBvbmx5IHNlZWluZyAweDAwNDEuCgkJQ29uc29sZS5Xcml0ZUxpbmUoIlxcVUQ4M0QwMDQxID0gXFVEODNEMDA0MSIpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJcXFU4MDAwMDA0MSA9IFxVODAwMDAwNDEiKTsKCQlDb25zb2xlLldyaXRlTGluZSgiXFxVRkZGRjAwNDEgPSBcVUZGRkYwMDQxIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIiIpOwoKCQkvLyBUaGUgZm9sbG93aW5nIGlzIGludmFsaWQsIGFuZCByYWlzZXMgYW4gZXJyb3IgSEVSRSAoYXMgZXhwZWN0ZWQpLAoJCS8vIGR1ZSB0byB0aGUgZmlyc3QgNCBoZXggZGlnaXRzIGJlaW5nIGJlbG93IHRoZSAweDgwMDAgbWFyay4KCQkvL0NvbnNvbGUuV3JpdGVMaW5lKCJcXFU3RkZGMDA0MSA9IFxVN0ZGRjAwNDEiKTsKCX0KfQ==