title: Why is the en-dash written as '\xe2\x80\x93' in Python?
body: <p>Specifically, what does each escape in <code>\xe2\x80\x93</code> do and why does it need 3 escapes? Trying to decode one by itself leads to an 'unexpected end of data' error.</p>
  
  <pre class="lang-python prettyprint-override"><code>&gt;&gt;&gt; print(b'\xe2\x80\x93'.decode('utf-8'))
  –
  &gt;&gt;&gt; print(b'\xe2'.decode('utf-8'))
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 0: unexpected end of data
  </code></pre>