using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
using System.Globalization;
public static void UnicodeTest()
var highUnicodeChar = "ð";
var hamiltonian = "H\u0302=T\u0302+V\u0302";
Assert.IsTrue(UnicodeTest(highUnicodeChar) == highUnicodeChar);
Assert.IsTrue(UnicodeTest(hamiltonian) == "HĖ");
Assert.IsTrue(UnicodeTest("") == "");
Console.WriteLine("Done");
static string UnicodeTest(string highUnicodeChar)
var result1 = highUnicodeChar;
var result2 = highUnicodeChar.TextElements().FirstOrDefault() ?? "";
Console.WriteLine(result1);
Console.WriteLine(result2);
public static class TextExtensions
public static IEnumerable<string> TextElements(this string s)
var enumerator = StringInfo.GetTextElementEnumerator(s);
while (enumerator.MoveNext())
yield return enumerator.GetTextElement();
public static void Main()
Console.WriteLine("Roslyn 2.0 Compiler; Environment version: " + Environment.Version);
Console.WriteLine("Uncaught exception: ");