title: Programmatically tell if a Unicode character takes up more than one character space in a terminal
body: <p>I discovered that in the Mac OS X Terminal, some Unicode characters take up more than one character space.  For example 27FC (long rightwards arrow from bar).  It prints two characters wide, but the second character prints on top of whatever the next character is, so you have to do <code>⟼&lt;space&gt;</code> for it to print correctly.  For example, <code>⟼a</code> prints like.
  <img src="https://raw.github.com/gist/1011244/c583830796fdc8095b3166b9e57fde724805eef0" alt="Arrow + a">
  (I made the font size large so that you could see it, but it does it for all font sizes).</p>
  
  <p>By the way, this is the Menlo font in the Mac OS X 10.6 Terminal application.</p>
  
  <p>23B3 (SUMMATION TOP) actually prints as two characters wide <em>and</em> tall (at least in Safari, it does this in the browser too, notice how it overlaps with the above line)⎲</p>
  
  <p>However, in the terminal in Ubuntu, none of these characters print wider or taller than one character.  </p>
  
  <p>Is there a way to programmatically tell if a character takes up more than one space?</p>
  
  <p>I'm using Python, so something that works either in pure Python or on POSIX (i.e., I can call some bash command using the <code>os</code> module) would be preferred.</p>
  
  <p>Also, I should note that if I increase the "Character Spacing" setting in the font settings of the terminal to 1.5 (from the default 1.0), then it looks like
  <img src="https://raw.github.com/gist/1011244/e3619883d6e519581fe9e3785339d37ec3e00cc9" alt="Arrow + a spaced">.</p>
  
  <p>Also, it'd be nice if an answer could give some insight into all of this (i.e., why does it happen?)</p>