<ul dir="auto">
<li>
<p dir="auto">Your Windows build number:  (Type <code class="notranslate">ver</code> at a Windows Command Prompt)<br>
Microsoft Windows [Version 10.0.18362.53]<br>
Windows Terminal: 0.1.1211.0 (this was a signed daily build of the appx)</p>
</li>
<li>
<p dir="auto">What you're doing and what's happening: (Copy &amp; paste specific commands and their output, or include screen shots)</p>
</li>
</ul>
<p dir="auto">Running this .NET Core app causes the Terminal to hang. This app uses Unicode.NET to generate emoji string encodings.</p>
<div class="highlight highlight-source-cs notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="using NeoSmart.Unicode;
using System;
using System.Text;

namespace HangWindowsTerminal
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            foreach (var emoji in Emoji.All)
            {
                try
                {
                    Console.Write(emoji.ToString());
                }
                catch (Exception e)
                {
                    Console.Write($&quot;[FAILED: {emoji.Name} - {e.Message}]&quot;);
                }
            }
        }
    }
}"><pre class="notranslate"><span class="pl-k">using</span> NeoSmart<span class="pl-kos">.</span>Unicode<span class="pl-kos">;</span>
<span class="pl-k">using</span> System<span class="pl-kos">;</span>
<span class="pl-k">using</span> System<span class="pl-kos">.</span>Text<span class="pl-kos">;</span>

<span class="pl-k">namespace</span> <span class="pl-v">HangWindowsTerminal</span>
<span class="pl-kos">{</span>
    <span class="pl-k">class</span> <span class="pl-smi">Program</span>
    <span class="pl-kos">{</span>
        <span class="pl-k"><span class="pl-k">static</span></span> <span class="pl-smi">void</span> <span class="pl-en">Main</span><span class="pl-kos">(</span><span class="pl-smi">string</span><span class="pl-kos">[</span><span class="pl-kos">]</span> <span class="pl-s1">args</span><span class="pl-kos">)</span>
        <span class="pl-kos">{</span>
            Console<span class="pl-kos">.</span>OutputEncoding <span class="pl-c1">=</span> Encoding<span class="pl-kos">.</span>UTF8<span class="pl-kos">;</span>

            <span class="pl-k">foreach</span> <span class="pl-kos">(</span><span class="pl-smi">var</span> emoji <span class="pl-k">in</span> Emoji<span class="pl-kos">.</span>All<span class="pl-kos">)</span>
            <span class="pl-kos">{</span>
                <span class="pl-k">try</span>
                <span class="pl-kos">{</span>
                    Console<span class="pl-kos">.</span><span class="pl-en">Write</span><span class="pl-kos">(</span>emoji<span class="pl-kos">.</span><span class="pl-en">ToString</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
                <span class="pl-kos">}</span>
                <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-smi">Exception</span> <span class="pl-s1">e</span><span class="pl-kos">)</span>
                <span class="pl-kos">{</span>
                    Console<span class="pl-kos">.</span><span class="pl-en">Write</span><span class="pl-kos">(</span><span class="pl-s">$"</span><span class="pl-s">[FAILED: </span><span class="pl-kos">{</span>emoji<span class="pl-kos">.</span>Name<span class="pl-kos">}</span><span class="pl-s"> - </span><span class="pl-kos">{</span>e<span class="pl-kos">.</span>Message<span class="pl-kos">}</span><span class="pl-s">]</span><span class="pl-s">"</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
                <span class="pl-kos">}</span>
            <span class="pl-kos">}</span>
        <span class="pl-kos">}</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span></pre></div>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;Project Sdk=&quot;Microsoft.NET.Sdk&quot;&gt;
  &lt;PropertyGroup&gt;
    &lt;OutputType&gt;Exe&lt;/OutputType&gt;
    &lt;TargetFramework&gt;netcoreapp2.2&lt;/TargetFramework&gt;
  &lt;/PropertyGroup&gt;
  &lt;ItemGroup&gt;
    &lt;PackageReference Include=&quot;Unicode.net&quot; Version=&quot;0.1.2&quot; /&gt;
  &lt;/ItemGroup&gt;
&lt;/Project&gt;"><pre class="notranslate">&lt;<span class="pl-ent">Project</span> <span class="pl-e">Sdk</span>=<span class="pl-s"><span class="pl-pds">"</span>Microsoft.NET.Sdk<span class="pl-pds">"</span></span>&gt;
  &lt;<span class="pl-ent">PropertyGroup</span>&gt;
    &lt;<span class="pl-ent">OutputType</span>&gt;Exe&lt;/<span class="pl-ent">OutputType</span>&gt;
    &lt;<span class="pl-ent">TargetFramework</span>&gt;netcoreapp2.2&lt;/<span class="pl-ent">TargetFramework</span>&gt;
  &lt;/<span class="pl-ent">PropertyGroup</span>&gt;
  &lt;<span class="pl-ent">ItemGroup</span>&gt;
    &lt;<span class="pl-ent">PackageReference</span> <span class="pl-e">Include</span>=<span class="pl-s"><span class="pl-pds">"</span>Unicode.net<span class="pl-pds">"</span></span> <span class="pl-e">Version</span>=<span class="pl-s"><span class="pl-pds">"</span>0.1.2<span class="pl-pds">"</span></span> /&gt;
  &lt;/<span class="pl-ent">ItemGroup</span>&gt;
&lt;/<span class="pl-ent">Project</span>&gt;</pre></div>
<ul dir="auto">
<li>What's wrong / what should be happening instead:</li>
</ul>
<p dir="auto">Once the loop gets to certain characters (with modifers?) the terminal hangs. Not always the same character. I'd expect problematic chars to be skipped or replaced with '??':</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/18265132/57547709-4ecf5580-731c-11e9-8e2e-3e8947766662.png"><img src="https://user-images.githubusercontent.com/18265132/57547709-4ecf5580-731c-11e9-8e2e-3e8947766662.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/18265132/57547987-1c722800-731d-11e9-968f-9726a896200d.png"><img src="https://user-images.githubusercontent.com/18265132/57547987-1c722800-731d-11e9-968f-9726a896200d.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">No repro in classic cmd.exe</p>
<p dir="auto">For example, the ‘defaultProfile’ in the settings is 'wsl‘, but I want to fill in the parameter 'defaultProfile = cmd ‘ when filling in the address bar, so I can open cmd directly instead of wsl</p>