title: Do Unicode strings in Python 3 still depend on "narrow" / "wide" builds?
body: <p>Since Python 2.2 and <a href="http://www.python.org/dev/peps/pep-0261/" rel="nofollow noreferrer">PEP 261</a>, Python can be built in "narrow" or "wide" mode, which affects the definition of a "character", i.e. "the addressable unit of a Python Unicode string".</p>
  
  <p>Characters in narrow builds look like UTF-16 code units:</p>
  
  <pre><code>&gt;&gt;&gt; a = u'\N{MAHJONG TILE GREEN DRAGON}'
  &gt;&gt;&gt; a
  u'\U0001f005'
  &gt;&gt;&gt; len(a)
  2
  &gt;&gt;&gt; a[0], a[1]
  (u'\ud83c', u'\udc05')
  &gt;&gt;&gt; [hex(ord(c)) for c in a.encode('utf-16be')]
  ['0xd8', '0x3c', '0xdc', '0x5']
  </code></pre>
  
  <p><em>(The above seems to disagree with <a href="http://www.cmlenz.net/archives/2008/07/the-truth-about-unicode-in-python" rel="nofollow noreferrer">some</a> <a href="https://stackoverflow.com/questions/1838170/what-is-internal-representation-of-string-in-python-3-x">sources</a> that insist that narrow builds use UCS-2, not UTF-16. Very intriguing indeed)</em></p>
  
  <p>Does Python 3.0 keep this distinction? Or are all Python 3 builds wide?</p>
  
  <p>(I've heard about <a href="http://www.python.org/dev/peps/pep-0393/" rel="nofollow noreferrer">PEP 393</a> that changes internal representation of strings in 3.3, but this doesn't relate to 3.0 ~ 3.2.)</p>