On 2013-08-08, Kurt Mueller <kurt.alfred.muel...@gmail.com> wrote: > I'd like to print strings right adjusted. > ( Python 2.7.3, Linux 3.4.47-2.38-desktop ) > > from __future__ import print_function > print( '>{0:>3}<'.format( 'a' ) ) >> a< > > But if the string contains an Umlaut: > print( '>{0:>3}<'.format( '??' ) ) >> ??< > > Same with % notation: > print( '>%3s<' % ( 'a' ) ) >> a< > print( '>%3s<' % ( '??' ) ) >> ??< > > For a string with no Umlaut it uses 3 characters, but for an > Umlaut it uses only 2 characters. > > I guess it has to to with unicode. > How do I get it right?
You guessed it! Use unicode strings instead of byte strings, e.g., u"...". -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list